2014-12-18 33 views
0

例如:有一个本地和远程回购有两个文件:混帐:从远程拉,但保持本地提交

1.txt 
2.txt 

开发者#1的编辑1.txt本地和提交更改没有他们推到远程回购。

之后,开发人员#2发送带编辑的2.txt的拉取请求,并将其合并到主远程回购中。

我的问题是:开发人员#1如何从远程回购拉2.txt,并保持更改为1.txt

当我尝试这样做,额外提交之后1.txt编辑添加的,所以它看起来是这样的:

  • 14:00 2.txt从开发商提交#2
  • 15:00 1.txt从开发商承诺#1
  • 16:00 Merge branch "master" of https://github...2.txt再次提交)

谢谢。

+0

有什么问题?您已经对这两个文件进行了更改。额外的提交将开发人员1和开发人员2的工作合并在一起。 – Eevee

回答

2

您应该使用

git pull --rebase 

你犯下另一个这样后将被重播,所以它的SHA哈希码将会改变,但除此之外,它会是相同的。这样你可以避免额外的“合并提交”。

+0

此外,您可以在'.git/config'文件中将'--rebase'而不是'--merge'作为分支的默认行为。而且,您还可以通过全局设置来设置新创建/拉出的分支的默认设置*。 – Kaz

+0

我很谨慎地向任何不熟悉它如何工作的人推荐'--rebase' - 它很容易被冲突弄糊涂,搞砸你的历史(或者更糟糕的是,你的分支)。 – Eevee

+0

我想在这种情况下,合并也会发生同样的情况。但是你是对的,它不是100%安全的操作。 –