对某些git命令有点困惑
" git commit
"之间有什么区别?和" git commit -a
"?我的想法是" git commit
"我们已经提交了所有跟踪的文件,为什么我们需要" -a
"选项?
单个短划线与双击的选项有何不同,例如" git commit -a
" vs" git commit --all
"?文档说它们是相同的,为什么不只是像#34; git commit -all
"?
我看到了一些使用' git commit -am "a msg"
'的例子。但无法找到关于这个" -am
"的文档。选项。它看起来像一个组合的" -a
"和" -m
"选项。一般情况下,选项可以像那样组合,还是只是一个特例?
答案 0 :(得分:2)
不同之处在于git只会将提交git add
的文件提交给提交。在执行git commit -a
时,它包含所有文件。使用git add
和git commit
,您可以提交所有已修改文件的一部分。
一个只是另一个git commit -a
的简写,而git commit --all
正在做同样的事情。
git commit -am"msg"
的使用正确地是git commit -a
和git commit -m"msg"
的组合。这也是为了方便提交不同的选项,这样你就不必一遍又一遍地输入整个内容。
你可以在这里找到关于git以及如何使用它的更多信息: git documentation
答案 1 :(得分:1)
git commit -a
将暂存所有跟踪的文件,然后提交它们。 git commit
只会提交已暂存的文件。 (暂存文件意味着使用git add
)。请阅读Git Basics了解详情;
具有短名称的单破折号选项主要用于交互式shell,因为它们更容易键入。具有长名称的双破折号选项主要用于脚本,以便为想要了解脚本功能的人简化工作。 Unix命令行程序提供这两者是传统的。至于长名称选项不是-all
的原因,请参阅第3点;
是的,为简洁起见,可以组合单破折号命令行标志。这就是为什么-all
不起作用的原因 - 它与输入-a -l -l
的意思相同。同样,这对于Unix命令行标志来说也是传统的。
答案 2 :(得分:1)
git add
。但适用于已经跟踪过的文件。答案 3 :(得分:1)
" git commit"之间的区别是什么?和" git commit -a"?我的想法是" git commit"已提交所有跟踪文件,为什么我们需要" -a"选项?
$ git commit
提交所有分阶段的更改。如果您只是进行了更改,然后运行$ git commit
,则不会提交任何内容,因为您的舞台区域为空。
要将更改的文件添加到下一次提交,通常使用$ git add <path>
。但是,如果您有多个文件,这可能很烦人。
-a
(或--all
)选项告诉命令自动暂存已修改和删除的文件,但是没有告诉Git的新文件不会受到影响。
单个短划线与双击的选项有何不同,例如&#34; git commit -a&#34; vs&#34; git commit --all&#34;?该文档说它们是相同的,所以为什么不只是像#34; git commit -all&#34;?
没有区别。选项通常采用--all
的形式,但某些常见选项的相应简短版本以单个短划线开头,例如-a
。
我看到了一些使用&#39; git commit -am&#34;一个msg&#34;&#39;但无法找到关于这个&#34; -am&#34;选项。它看起来像一个组合的&#34; -a&#34;和&#34; -m&#34;选项。一般情况下,选项可以像那样组合,还是只是一个特例?
当他们不需要选项值时,您可以将短选项组合在一起。 $ git commit -am
等于$ git commit -a -m
。
答案 4 :(得分:0)
阅读此http://git-scm.com/docs/git-commit
git commit keys -a -m equal -am
答案 5 :(得分:0)
git commit -a
为您执行所有跟踪文件的添加步骤。不使用-a
只会提交已提交的文件。您可以通过git status
查看这些文件的内容。
至于您的其他问题,-a
vs --all
,大多数脚本都会使用此选项的简写或使用--
拼写整个单词。
是的,-am
是两个选项的组合。这在许多unix脚本中都很常见。