2012-02-10 88 views
0

所以我在GitHub上有两个分支:master和branchA。假设我一直在做主,主人在3次提交之前。因此,master上有不在branchA中的提交d,e和f。接下来说,我的同事用commit g将branchA上传到GitHub。所以我们有:Git force pull remote from

master: a, b, c, d, e, f 
branchA: a, b, c, g 

说现在我想切换到branchA并拉到GitHub上的东西。我遇到的问题是,当我使用git branch branchA时,它会自动使用master作为我的起始位置,因此添加d,e,f,并且当我拉branchA时,由于g和d,e,f不兼容,我得到冲突。

有没有办法从GitHub中拉出我的本地提交日志与GitHub上的匹配?我尝试了git pull -f,但那显然不起作用。

回答

0

你应该

git fetch 

然后检查什么东西像蒸发了

git log --all --oneline --graph --decorate 

现在你可以合并或衍合这是在同一时间完成的工作。任何以“origin”为前缀的分支将成为github上的内容(假设这是你从中克隆的)。当地分行的颜色也会有所不同。

如果你想在一个地方分公司的工作,被拉倒,你还没有还上工作的一个分支,检查出来,并跟踪它与

git checkout -t origin/someBranch 

我只会用在特殊情况下,拉我正在合并或重新设计自己的作品。根据别人的做法,我可以选择重新合并。

+0

git checkout -t origin/someBranch完美工作。谢谢! (我不能接受另外7分钟的答案,但我会做一次) – 2012-02-10 22:05:53

+0

没问题。我希望你能理解我对获取先检查,然后决定根据工作基础重建或合并点做:) – 2012-02-10 22:07:20

+0

我已经取了一切,我只是无法弄清楚如何切换到分支我没有创造,但没有拉我所有的主人以及。但-t param创造了奇迹。我会用日志,但也有几百提交我需要通过排序和我懒部分= P – 2012-02-10 22:08:42

0
git fetch origin 
git checkout origin/branchA -b <local branch name> 

这将创建一个名为本地分行您指定的branchAorigin一个确切的重复。如果您的GitHub遥控器被命名为origin以外的其他名称,请相应地进行调整。

你也可以只是git branch指定起点:

git fetch origin 
git branch <local branch name> origin/branchA 
git checkout <local branch name> 

-b标志git checkout只是让一步算一步短,如果你打算看看你创建反正分支。

此外,如果你希望你的本地分支的名字是相同的远程分支,有一个更短的方式:

git fetch origin 
git checkout -t origin/branchA 

,这将创造出匹配originbranchA本地branchA

+0

是的我添加了更短的方式,然后你编辑并添加到你的答案:) – 2012-02-10 22:12:19

+0

任何事情,以作出更好的答案。 – Amber 2012-02-10 22:29:21