Git: 从远程拉取但保留本地提交记录

3
例如:有一个本地和远程仓库,其中包含两个文件:
1.txt
2.txt

开发者 #1 本地编辑了 1.txt 并提交了更改,但没有将其推送到远程仓库。

后来,开发者 #2 发送了已编辑的 2.txt 的 pull request,并被合并到主远程仓库中。

我的问题是:开发者 #1 如何从远程仓库拉取 2.txt 并保留对 1.txt 的更改?

当我尝试这样做时,会在 1.txt 编辑之后添加额外的提交,看起来像这样:

  • 14:00 来自开发者 #2 的 2.txt 提交
  • 15:00 来自开发者 #1 的 1.txt 提交
  • 16:00 https://github... 的 "master" 分支合并 (2.txt 再次提交)

谢谢。


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

7

你应该使用

git pull --rebase

这样做会使您的提交在另一个提交后进行重放,因此其SHA哈希将更改,但除此之外它将保持不变。这样您就可以避免额外的“合并提交”。


此外,您可以在.git/config文件中将--rebase设置为分支的默认行为,而不是--merge。并且,您还可以通过全局设置将设置作为新创建/拉取的分支的默认设置。 - Kaz
我对建议任何不熟悉其工作原理的人使用 --rebase 非常谨慎 - 它非常容易因冲突而产生困惑,从而损坏你的历史记录(甚至更糟的是,损坏你的分支)。 - Eevee
我猜在这种情况下,合并操作也可能会发生同样的情况。但你说得对,这并不是一个100%安全的操作。 - Lajos Veres

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接