git相当于" svn status -u" (重新)

时间:2014-12-17 10:17:17

标签: git svn

在Subversion中,我可以看到哪些文件会受到更新的影响而不会实际执行更新

svn status -u

Git没有这样的命令。这个问题的通常建议是首先进行提取。这被描述为herehere。后一篇文章还包含一个写得很好的解释,为什么需要提取。

我今天偶然发现了discussion这个主题,提出了一种不同的方法,即使用

git pull --dry-run

现在这让我想知道:

  1. 它真的有效吗?如果不进行提取,它怎么能做呢?
  2. svn pull --help没有解释--dry-run开关,但如果我使用它,git也不会抱怨它也是非法选项。这种“无证件”是什么?

1 个答案:

答案 0 :(得分:3)

git pull --dry-run的快速测试表明它等同于git fetch --dry-run。它实际上并没有获取任何东西,只是显示了将要获取的内容的SHA1。这对恕我直言并不是很有用。

git pull相当于git fetch,后跟git merge。通常会传递对这些命令中的任何一个有效的参数,这是有意义的。

如果“更新”是指git pull,那么如果将其拆分为等效的运行git fetchgit merge命令,则可以检查两者之间的状态以确定合并/获取。 git中的另一个选项是执行pull,检查发生的情况,如果它执行了您不想要的操作,则撤消它。

如果它有合并冲突,您可以使用git merge --abort。如果没有,您可以使用git reset将分支放回到先前的SHA1。