所有git命令都具有空运行选项吗?


81

所有git命令是否都具有--dry-run选项,或者该选项可以指示该命令在不实际执行的情况下会做什么?

Answers:


75

并非每条命令自然都会直接支持空运行。

  • git merge有自己的选项git merge --no-commit --no-ff
  • 但是git pull并不是真的需要它(“ git fetch origin”,然后是“ git log master..origin/master”,在a之前git merge origin/master
    (但是git push具有空运行选项)

正如JC Hamano总结的那样

有些事情没有在git中实现,因为它们没有意义,而有些事情没有在git中实现,因为没人愿意为此而痒痒。
换句话说,我们倾向于仅实现现实世界中已证明有实际需求的事物,并且只有当添加是系统的一致部分时才有意义。


iboisver评论:

需要注意的另一件事是,诸如git addgit rm允许-n命令行选项指定空运行命令,而在中git commit,该-n选项表示完全不同的东西。
因此,请务必检查手册页

git commit -n

-n
--no-verify

此选项绕过pre-commit和commit-msg挂钩。另请参见githooks(5)


2
要注意的另一件事是,命令-ngit-addgit-rm允许-n命令行选项指定空运行,而在命令中git-commit-n选项表示完全不同的东西。因此,请务必检查手册页。
iboisver

1
@iboisver有趣的反馈,谢谢。我已将您的评论包含在答案中,以提高知名度。
VonC

我本来希望--dry在“ git stash”上运行,尤其是在推送目录“ git stash
push-

@GaurangPatel同意。2017年在这里进行了讨论:public-inbox.org/git/…–
VonC

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.