所有的git命令都有一个干运行选项吗?
是否所有的git命令都有一个–dry-run选项,或者是一个能够指示命令执行什么而不实际执行的选项?
并不是每一个命令都会直接支持空转。
- git merge有自己的select (
git merge --no-commit --no-ff
) - 但是git pull并不是真的需要它 ('
git fetch origin
',然后是一个'git log master..origin/master
',在git merge origin/master
)
(但是git push
有一个干运行选项)
正如JC Hamano总结的那样 :
有些东西在git中没有实现,因为它们没有任何意义,而且有些东西在git中没有实现,因为没有人可以从头开始。
换句话说,我们倾向于只实施从现实世界中存在实际的,被证实的需求的东西,只有当加法作为系统的连贯部分才有意义。
iboisver评论:
另外需要注意的是,像
git add
和git rm
这样的命令允许-n
命令行选项指定空运行 ,而在git commit
,-n
选项意味着完全不同的东西。
所以一定要检查手册页
git commit -n
:
-n --no-verify
这个选项绕过预先提交和提交msg钩子。 另见githooks(5) 。
虽然每个评论并不总是有一个“ --dry-run
标志,但通常都是等值的。 例如, 这个前面的问题显示了为git merge
做什么。