在 Subversion 中,我可以使用
查看哪些文件会受到更新的影响,而无需实际执行更新svn status -u
Git 没有这样的命令。对于这个问题,通常的建议是先进行获取。这是描述的here和 here 。后一篇文章还包含一个写得很好的解释,说明为什么需要获取。
我今天偶然发现了一个discussion这个主题提出了一种不同的方法,即使用
git pull --dry-run
现在这让我想知道:
- 真的有效吗?它如何在不进行提取的情况下做到这一点?
- svn pull --help 没有解释 --dry-run 开关,但如果我使用它,git 也不会提示它是非法选项。这是一种“未记录的功能”吗?
最佳答案
对git pull --dry-run
的快速测试表明它与git fetch --dry-run
等效。它实际上并不获取任何内容,它只是显示将获取的内容的 SHA1。恕我直言,这不是很有用。
git pull
相当于 git fetch
后跟 git merge
。对于这些命令中的任何一个有效的参数通常都会被传递,这是有意义的。
如果“更新”是指 git pull
,那么如果将其拆分为等效的运行 git fetch
和 git merge
命令,您可以检查之间的状态以确定将 merge/获取的内容。 git 中的另一个选项是进行 pull ,检查发生了什么,如果它做了您不想要的事情,则撤消它。
如果存在 merge 冲突,可以使用git merge --abort
。如果没有,您可以使用 git reset 将分支恢复到之前的 SHA1。
关于git - "svn status -u"的 git 等价物(重新审视),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27523195/