对git
已经跟踪的文件进行更改后,我通常会执行以下操作:
git commit -a -m "a message describing what you did"
接着是
git push origin master
提交然后将所有更改推送到我的Github帐户。但是,第一个命令不适用于添加或删除的提交文件。要做到这一点,我必须先输入:
git add -A
如此处所述:How to commit and push all changes, including deletes?。
在另一个问题Git commit all files using single command中,接受的答案表明应用完整提交的唯一方法(即:包括添加或删除的文件,不仅仅是编辑过)然后推送是通过将它们与&&
命令组合起来,如下所示:
git add -A && git commit
在我的情况下看起来像:
git add -A && git commit -a -m "a message describing what you did" && git push origin master
现在问题:这个大命令是否正确?有没有办法创建一个新的git
命令来同时应用这三个命令?此外:推荐或劝阻这些命令的合并?如果是,请说明原因。
我立刻后悔这个决定:Edit last pushed commit's message。
答案 0 :(得分:11)
对我来说是正确的。
您可以通过执行
为命令创建别名git config --global alias.commitall '!func(){ git add -A && git commit -am "$1" && git push origin HEAD; }; func'
然后您可以通过输入
来提交所有更改git commitall "a message describing what you did"
答案 1 :(得分:3)
呀。那个大命令实际上是正确的。它允许您在repo中的给定目录中提交所有内容,包括新创建/未跟踪的文件。
是的,您可以创建一个新的git
命令(实际上是别名),如下所示:
[alias]
acp = "!f(){ git add -A && git commit -am "$1" && git push origin master; };f"
上述别名必须在标记为~/.gitconfig
的部分下的全局git配置([alias]
)内。现在,您可以编写类似:git acp <message>
的内容来运行上述命令。
绝对建议合并命令,这是* nix提供的强大功能。但是,在当前情况下,请确保您确实希望在一个步骤中执行所有这些操作。 Git假设您想要有选择地添加更改。
答案 2 :(得分:1)
最近我编写了一个 git-powercommit 脚本,用于提交 Git 存储库中的所有更改。当前它会忽略已删除/创建的文件,但添加此功能应该不难。另一方面,它确实支持丰富的工作流,包括 stash/pull/push 并且还处理子模块。
答案 3 :(得分:0)
如果你反复输入三行感觉不好,你也可以使用GUI工具。 http://www.git-scm.com/downloads/guis 顺便说一句,正如“Stonic”所说,你总是可以创建一个新的git命令。