如何使用单个命令暂存和提交所有文件,包括新添加的文件?
答案 0 :(得分:490)
git add -A && git commit -m "Your Message"
算作“单一命令”?
根据@thefinnomenon的答案编辑:
要将其作为git alias
,请使用:
git config --global alias.coa '!git add -A && git commit -m'
并使用以下消息提交包括新文件在内的所有文件:
git coa "A bunch of horrible changes"
解释(来自git add
documentation):
-A, - all, - no-ignore-removal
不仅更新索引工作树具有文件匹配的索引,还更新索引已有索引的位置 条目。 添加,修改和删除索引条目以匹配 工作树。
如果在使用-A选项时没有给出
<pathspec>
,则表示所有文件 整个工作树都更新了(旧版本的Git用来限制 更新到当前目录及其子目录。)
答案 1 :(得分:404)
此命令将添加并提交所有已修改的文件,但不是新创建的文件。
git commit -am "<commit message>"
来自man git-commit:
-a, --all
Tell the command to automatically stage files that have been modified
and deleted, but new files you have not told Git about are not
affected.
答案 2 :(得分:22)
我使用这个功能:
gcaa() { git add --all && git commit -m "$*" }
在我的zsh配置文件中,我可以这样做:
> gcaa This is the commit message
自动暂存和提交所有文件。
答案 3 :(得分:22)
单行播放所有文件(已修改,已删除,新)并提交评论:
git add --all && git commit -m "comment"
http://git-scm.com/docs/git-add
http://git-scm.com/docs/git-commit
答案 4 :(得分:13)
不确定为什么这些答案都围绕着我认为合适的解决方案而跳舞,但是我在这里使用的是什么:
git config --global alias.coa '!git add -A && git commit -m'
git coa "A bunch of horrible changes"
注意:coa
是提交所有内容的缩写,可以替换为您心中所需的任何内容
答案 5 :(得分:9)
git中的提交可以是多步骤过程,也可以是一步,具体取决于具体情况。
这种情况是你有多个文件更新和想要的地方 提交:
您必须在提交任何内容之前添加所有已修改的文件。
git add -A
或
git add --all
之后您可以使用提交所有添加的文件
git commit
使用此功能,您必须为此提交添加消息。
答案 6 :(得分:4)
如果您只想要一种“快速而肮脏”的方式来隐藏当前分支上的更改,您可以使用以下别名:
git config --global alias.temp '!git add -A && git commit -m "Temp"'
运行该命令后,您只需键入git temp
即可让git自动将所有更改提交到当前分支,作为名为“Temp”的提交。然后,您可以稍后使用git reset HEAD~
“取消提交”更改,以便继续处理这些更改,或git commit --amend
向提交添加更多更改和/或为其指定正确的名称。
答案 7 :(得分:3)
我在配置中有两个别名:
alias.foo=commit -a -m 'none'
alias.coa=commit -a -m
如果我太懒,我只用
提交所有更改git foo
只是为了快速提交
git coa "my changes are..."
coa代表“全部提交”
答案 8 :(得分:3)
很棒的答案,但是如果你寻找一条单线,你可以连接,别名并享受便利:
git add * && git commit -am "<commit message>"
这是一行但有两个命令,如上所述,您可以为这些命令添加别名:
alias git-aac="git add * && git commit -am "
(最后的空格很重要),因为你要参数化新的短手命令。
从此刻开始,您将使用此别名:
git-acc "<commit message>"
你基本上说:
git,为我添加所有未跟踪的文件,并使用此给定的提交消息提交它们。
希望你使用Linux,希望这有帮助。
答案 9 :(得分:0)
尝试使用:
git add . && git commit -m "your message here"
答案 10 :(得分:0)
运行给定命令
git add . && git commit -m "Changes Committed"
但是,即使看起来是单个命令,也要一个接一个地运行两个单独的命令。在这里,我们仅使用&&
来组合它们。和跑步没什么不同
git add .
和git commit -m "Changes Committed"
。您可以一起运行多个命令,但是顺序很重要。如果您希望将更改与登台和提交一起推送到远程服务器,如何按照给定的方式进行操作,
git add . && git commit -m "Changes Committed" && git push origin master
相反,如果您更改顺序并将push
放在首位,它将首先执行,并且在暂存和提交后不会给出期望的推送,只是因为它已经先运行了。
&&
在第一个命令成功返回或错误级别为0时在行上运行第二个命令。&&
的反面是||
,它将运行第二个命令当第一个命令不成功或错误级别为1时使用该命令。
答案 11 :(得分:0)
我认为这是暂存和提交所有更改的最优雅的方式:
git commit . -m "message"
答案 12 :(得分:0)
这是一个 shell script,它做了一些接近的事情。目前它不提交新添加的文件(添加此功能应该很容易),但它确实提交了其他所有文件。此外,它会递归访问 Git 子模块。预期的使用场景很简单
$ git powercommit
答案 13 :(得分:-1)
您可以编写一个名为git-commitall
的小脚本(查看Ian Clelland的答案),该脚本使用几个git命令来执行您想要执行的操作。
将此脚本放在$PATH
的任意位置。你可以通过git commitall
来称呼它......非常方便!
找到here(不幸的是,问题和所有答案都被删除,只有声誉很高)