确保git历史是一样的

时间:2012-08-02 20:50:46

标签: git

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

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

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

感谢

1 个答案:

答案 0 :(得分:1)

Git可以轻松验证两个分支的整个历史记录是相同的:

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

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

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