查看git差异而不检出分支?

3

基本上,我有一个已部署的应用程序,我认为它已经与git仓库同步了,但我不确定。我在项目根目录中运行了git init,并设置了正确的源。我测试了连接,并且能够通过运行git ls-remote --heads git@myurl.git连接到仓库并获取分支列表。我的问题是,是否有一种方法可以使用git diff查看已部署的应用程序是否与特定分支同步,而不需要检出主分支?如果我运行git checkout master,git会做什么?

编辑:

问题在于,已部署的应用程序从未直接由git跟踪,而是在我的本地机器上进行跟踪,我会通过使用python gif diff脚本生成所有更改文件的tarball来推送更新,然后在已部署的应用程序目录的根目录中解压缩。今天我在gitlab中设置了一个部署密钥,以便我可以在已部署的应用程序上运行git pull。我想知道最好的方法是什么?已经有一段时间没有触及该应用程序了,我不知道另一个开发人员是否进入并进行了未跟踪的更改,我不想丢失已对已部署的应用程序进行的任何更改,所以我希望有一种方法来查看主分支和已部署的应用程序之间的差异。

2个回答

2
我猜你的担忧是你不想覆盖本地更改。
没问题 - 只需执行
git fetch origin master
git diff FETCH_HEAD

或者将上面的master替换为其他分支名称,以便与不同分支进行比较。

我没有测试过这个方法,但是git fetch不会影响你的工作目录,git diff也不会,所以它应该是安全的。


0

您可以在分支上运行git diff。如果您的存储库中有两个名为remote1remote2的远程,并且您想要检查这两个远程中是否同步了名为test的分支,只需运行git diff remote1/test remote2/test即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接