如何使用一个命令来提交所有文件,包括新添加的文件?
Does
git add -A && git commit -m "Your Message"
算作“单一命令”?
根据下面@thefinnomenon的回答进行编辑
要将它作为git别名,请使用:
git config --global alias.coa "!git add -A && git commit -m"
并提交所有文件,包括新文件,用一个消息:
git coa "A bunch of horrible changes"
解释
从git添加文档:
-A, -所有,-no-ignore-removal 不仅在工作树中有文件匹配的地方更新索引,而且在索引已经有文件匹配的地方更新索引 条目。属性的添加、修改和删除索引项 工作树。 如果使用-A选项时没有给出<pathspec>,则 更新整个工作树(旧版本的Git用于限制 更新到当前目录及其子目录)。
你可以写一个叫做git-commitall的小脚本(请看Ian Clelland的回答),它使用几个git命令来执行你想做的事情。 把这个脚本放在$PATH的任意位置。你可以通过git commitall来调用它…非常方便!
在这里找到(不幸的是,问题和所有答案都被删除了,只有高声誉的人才能看到)
该命令将添加并提交所有修改过的文件,但不包括新创建的文件:
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.
我在我的配置中有两个别名:
alias.foo=commit -a -m 'none'
alias.coa=commit -a -m
如果我太懒,我就提交所有的更改
git foo
简单地说一下
git coa "my changes are..."
Coa代表“全部承诺”
在git中提交可以是一个多步骤过程,也可以是一个步骤,这取决于具体情况。
这种情况是指您更新了多个文件并希望更新 提交: 在提交任何东西之前,您必须添加所有修改过的文件。 git添加-A 或 Git add—all 之后,您可以使用提交所有添加的文件 git提交 有了这个,你必须为这个提交添加消息。
如果你只是想要一种“快速而肮脏”的方法来保存当前分支上的更改,你可以使用以下别名:
git config --global alias.temp '!git add -A && git commit -m "Temp"'
运行该命令后,你可以输入git temp,让git自动将你的所有更改提交到当前分支,并将其命名为“temp”。然后,你可以使用git reset HEAD~稍后“取消提交”更改,这样你就可以继续处理它们,或者git commit——amend添加更多的更改到提交和/或给它一个合适的名称。
我使用这个函数:
gcaa() { git add --all && git commit -m "$*" }
在我的zsh配置文件,所以我可以做:
> gcaa This is the commit message
自动执行并提交所有文件。
运行所有文件(修改、删除和新建)并提交注释的一行程序:
git add --all && git commit -m "comment"
http://git-scm.com/docs/git-add http://git-scm.com/docs/git-commit
很棒的答案,但如果你寻找一行做所有,你可以连接,别名和享受的便利:
Git add * && Git commit -am "<提交消息>"
它是一个单行,但有两个命令,如前所述,你可以别名这些命令:
别名git-aac="git add * && git commit -am "(末尾的空格很重要),因为你要参数化新的短手命令。
从现在起,你要用这个别名
Git-acc "<提交消息>"
你基本上会说:
Git,为我添加所有未跟踪的文件,并使用这个给定的提交消息提交它们。
希望你使用Linux,希望这对你有帮助。
我不知道为什么这些答案都围绕着我所认为的正确解决方案,但为了它的价值,我在这里使用:
1. 创建别名:
git config --global alias.coa '!git add -A && git commit -m'
2. 添加所有文件并提交一个消息:
git coa "A bunch of horrible changes"
注意:coa是commit all的缩写,可以替换为任何你想要的东西
运行给定的命令
git add . && git commit -m "Changes Committed"
然而,即使它看起来是一个单独的命令,它是两个单独的命令一个接一个地运行。这里我们只用&&来组合它们。这和跑步没什么不同 Git添加。和git分别commit -m "Changes Committed"。您可以同时运行多个命令,但顺序很重要。如果你想把这些变化推送到远程服务器,同时进行分段和提交,你可以这样做,
git add . && git commit -m "Changes Committed" && git push origin master
相反,如果你改变顺序,把推送放在第一位,它将首先执行,并且在登台和提交之后不会给出所需的推送,因为它已经先运行了。
当第一个命令成功返回时,&&在该行上运行第二个命令,或者错误级别为0。与&&相反的是||,它在第一个命令不成功或错误级别为1时运行第二个命令。
或者,你可以创建alize作为git的配置-全局别名。addcommit”!git add -a && git commit -m'并使用它作为git addcommit -m“添加并提交新文件”
这是一个shell脚本,它做了一些类似的事情。目前它不提交新添加的文件(添加这个功能应该很容易),但它提交了其他所有内容。此外,它还递归地访问Git子模块。预期的使用场景非常简单
$ git powercommit
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别