有没有办法对本地GIT仓库与远程仓库进行详细,深入的比较?
我的意思是文件名,日期和内容的完整比较,而不仅仅是依赖于GIT历史信息的比较。
这可能听起来像是一个奇怪的请求,但在花了几个小时与GIT搏斗后,我想要额外确认我的本地回购真的处于它告诉我的状态。
答案 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
选项克隆了远程),则提取标记,那么它们也会受到修剪