【发布时间】:2014-03-06 05:57:31
【问题描述】:
我已通过git fetch --all 拉出所有远程分支。我可以看到我想通过git branch -a 合并的分支作为远程/原点/分支名称。问题是它无法访问。我无法合并或结帐。
【问题讨论】:
标签: git repository branch git-branch
我已通过git fetch --all 拉出所有远程分支。我可以看到我想通过git branch -a 合并的分支作为远程/原点/分支名称。问题是它无法访问。我无法合并或结帐。
【问题讨论】:
标签: git repository branch git-branch
您可以使用远程名称引用那些远程跟踪分支〜(以git branch -r 列出)。
你需要获取远程分支:
git fetch origin aRemoteBranch
如果您想在本地分支上合并这些远程分支之一:
git checkout aLocalBranch
git merge origin/aRemoteBranch
注意 1: 对于历史悠久的大型 repo,您需要在使用 git fetch 时添加 --depth=1 选项。
注意 2: 这些命令也适用于其他远程存储库,因此如果您正在使用 fork,则可以设置 origin 和 upstream。
注 3:user3265569 建议使用以下别名 in the comments:
从
aLocalBranch运行git combine remoteBranch
别名:combine = !git fetch origin ${1} && git merge origin/${1}
相反的场景:如果你想将一个本地分支合并到一个远程分支上(而不是一个远程分支到一个本地分支,如上图所示),你需要创建一个new首先在所述远程分支之上的本地分支:
git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch
这里的想法是将“您的本地分支之一”(此处为 anotherLocalBranch)合并到远程分支(origin/aBranch)。
为此,您首先创建“myBranch”作为代表该远程分支:即git checkout -b myBranch origin/aBranch 部分。
然后你可以将anotherLocalBranch合并到它(到myBranch)。
【讨论】:
aLocalBranch”合并到“myBranch”和“@987654342” @" 代表远程分支origin/aBranch.
aLocalBranch 不是错字,但您批准了最新的编辑(2 年后!),它更正了这个“可能的错字”。在撤消编辑之前,我想与您确认一下。
aLocalBranch 运行git combine remoteBranch。别名:combine = !git fetch origin ${1} && git merge origin/${1}
也许你想跟踪本地分支的远程分支:
git branch -b new-local-branch
git branch --set-upstream-to=origin/remote-branch new-local-branch
git checkout new-local-branch
git pull
【讨论】:
首先从原点获取远程分支。
git fetch origin remote_branch_name
将远程分支合并到本地分支
git merge origin/remote_branch_name
【讨论】:
如果您已经获取远程分支并执行git branch -a,
你会得到类似的东西:
* 8.0
xxx
remotes/origin/xxx
remotes/origin/8.0
remotes/origin/HEAD -> origin/8.0
remotes/rep_mirror/8.0
之后,您可以使用rep_mirror/8.0 在本地指定您的远程分支。
诀窍是 remotes/rep_mirror/8.0 不起作用,但 rep_mirror/8.0 起作用。
所以,像git merge -m "my msg" rep_mirror/8.0 这样的命令会进行合并。
(注意:这是对@VonC 答案的评论。我把它作为另一个答案,因为代码块不适合评论格式)
【讨论】:
每当我进行合并时,我都会进入我想要合并的分支(例如“git checkout branch-i-am-working-in”),然后执行以下操作:
git merge origin/branch-i-want-to-merge-from
【讨论】:
git fetch origin/branch-i-want-to-merge-from,对吧?
git fetch origin develop 后跟git merge origin/develop
git merge 一个人做不到。
git add . -> git commit -m <message> -> git push -u origin <branch>?