我(想)我明白我可以使用git rev-parse
来确定我任何本地Git分支上当前提交的SHA,包括那些以remotes/...
开头的分支;但我认为,除非我先git fetch
,否则这不会反映与后者相对应的远程存储库中的状态。那是对的吗?是
git fetch origin master
git rev-parse remotes/origin/master
用于确定远程分支上当前提交的SHA的正确习惯用法?执行导致此过度的fetch
会产生副作用吗?还有另一种方式吗?
答案 0 :(得分:1)
你是对的。与SVN之类的工具不同,Git只在本地存储和使用信息。
如果您想查看可能已在远程仓库上执行的最新活动,您可以:
git fetch
定期运行git fetch
可能不是问题,具体取决于您的网络等。但是,即使使用SVN,大多数人也不关心其他提交,直到他们自己准备提交,因此每60秒更新一次repo可能有点矫枉过正。
Git用户经常提交并推送他们的功能分支,因此在整合时间之前也不关心其他分支,这可能是稍后的,并且在不同的回购中完成。
您需要做出对您的工作流程和设置有意义的选择。但是,如果您从集中模型(例如SVN)迁移,请不要害怕放弃并尝试更多“Git'sh”一段时间: - )
关于远程浏览。 Git带有一个名为instaweb git instaweb --help
的子命令,可以通过浏览器提供回购信息
答案 1 :(得分:1)
git ls-remote origin master
也会给你origin/master
的sha而不实际执行获取(它不会下载任何对象或更新refs/remotes
中的任何内容)但它不是任何普通的一部分git工作流,可能是因为如果没有它引用的提交,sha就不是很有用。