假设有人创建了一个分支xyz。如何从远程服务器(例如GitHub)中提取分支xyz并将其合并到本地存储库中的现有分支xyz中?
答案推送分支到Git会给我一个错误“![拒绝]”,并提到“非快进”。
假设有人创建了一个分支xyz。如何从远程服务器(例如GitHub)中提取分支xyz并将其合并到本地存储库中的现有分支xyz中?
答案推送分支到Git会给我一个错误“![拒绝]”,并提到“非快进”。
当前回答
最好的方法是:
git checkout -b <new_branch> <remote repo name>/<new_branch>
其他回答
可以使用
git checkout --track origin/the-branch-name
确保分支名称完全相同。
这有助于我在将其合并到其他分支之前获取远程分支:
git fetch repo xyz:xyz
git checkout xyz
只需显式跟踪远程分支,一个简单的git pull就能满足您的需求:
git branch -f remote_branch_name origin/remote_branch_name
git checkout remote_branch_name
后者是本地操作。
或者更符合GitHub关于分叉的文档:
git branch -f new_local_branch_name upstream/remote_branch_name
git pull <gitreponame> <branchname>
通常,如果您只有repo分配给代码,那么gitrepname将是源代码。
如果您正在处理两个回购,比如一个是本地的,另一个是远程的,您可以从gitremote-v查看回购列表。这显示了分配给当前代码的回购数量。
BranchName应存在于相应的gitrepname中。
您可以使用以下两个命令添加或删除repo
git remote add <gitreponame> <repourl>
git remote remove <gitreponame>
一种安全的方法是首先创建本地分支(即xyz),然后将远程分支拉入本地。
# create a local branch
git checkout -b xyz
# make sure you are on the newly created branch
git branch
# finally pull the remote branch to your local branch
git pull origin xyz
下面是可以将远程分支拉到本地分支的语法。
git pull {repo} {remotebranchname}:{localbranchname}
git pull origin xyz:xyz