如何深入检查本地存储库状态?

时间:2016-02-22 15:28:33

标签: git

有没有办法对本地GIT仓库与远程仓库进行详细,深入的比较?

我的意思是文件名,日期和内容的完整比较,而不仅仅是依赖于GIT历史信息的比较。

这可能听起来像是一个奇怪的请求,但在花了几个小时与GIT搏斗后,我想要额外确认我的本地回购真的处于它告诉我的状态。

3 个答案:

答案 0 :(得分:1)

好吧,最后一次提交的哈希是基于你提到的所有信息。所以你需要做的只是git fsck,然后检查最后一次提交的哈希值。如果您想要更加确定,可以运行xcodebuild clean test -workspace App.xcworkspace -scheme "App-Tests" -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.2' 以确保repo处于一致状态(PSurface将基本检查所有校验和,以便如果由于某些潜在的错误而更改了任何内容,会抓住它。)

答案 1 :(得分:1)

对于初学者,您可以安全地假设具有相同SHA1的两个git提交是相同的并且专注于您的工作目录。

是否签出了相同的提交?

git status中显示的所有内容?

可能会被.gitignore忽略?

是否有任何行结束转换(mac,linux v win)?

答案 2 :(得分:0)

  

这可能听起来像是一个奇怪的请求,但在花了几个小时与GIT搏斗后,我想要额外确认我的本地回购真的处于它告诉我的状态。

您无需验证它。

使用fetch命令,本地存储库将与远程存储库保持同步 只需运行此命令:

# update the local repo with all the changes from the remote repo
# including tags, branches and remove deleted branches as well
git fetch --all --prune

git fetch

  

从一个或多个其他存储库中获取分支和/或标记(统称为" refs"),以及完成其历史记录所需的对象。

     

远程跟踪分支机构已更新

<强> --all

获取所有遥控器。

<强> -p / --prune

  

获取后,删除遥控器上不再存在的所有远程跟踪参考

     

如果仅因默认标记自动跟踪或--tag s选项而提取标记,则不对其进行修剪。

     

但是,如果由于显式refspec(在命令行或远程配置中,例如,如果使用--mirror选项克隆了远程),则提取标记,那么它们也会受到修剪