2

我有一个 Linux 内核的 git repo。我用标准的 git clone 做到了。让我们称该仓库为“服务器”。我也有“计算机 a”,它克隆了服务器。我在“计算机 a”上开发了很长时间,然后推回“服务器”,但总是在一个单独的分支中。一段时间后,我想更新服务器,所以我在“计算机 a”上运行了以下命令

git checkout master
git pull git://linus/kernel.git
git push origin master    #here origin is 'server'

所以现在我的服务器的主分支可能在 master 中有不是来自主内核 repo 的更改。如果有的话,我怎样才能找到它们?换句话说,如何验证 server/master 中的整个历史记录与 Linus 的 master 分支相同?

谢谢

4

1 回答 1

1

Git 可以很容易地验证两个分支的整个历史记录是否相同:

  • 如果 SHA1 提交 ID 匹配,则历史记录相同
  • 否则,历史不同

如果哈希值不同,git cherry命令可以帮助识别不在上游分支中的提交。

git pull --ff-only如果您从上游分支拉出并希望确保完成与本地工作的合并,则另一个提示是使用。使用后--ff-only,SHA1 提交 ID 将匹配,或者整个命令将失败。

于 2012-08-02T20:56:54.233 回答