git添加,提交和推命令在一个?

有没有办法在一个中使用这三个命令?

git add . git commit -a -m "commit" (do not need commit message either) git push 

有时我只改变一个字母,CSS填充等等。 不过,我必须写出所有三个命令来推动变化。 有很多项目,我只是一个推动者,所以这个命令会很棒!

build立@加文的答案:

让懒惰函数而不是别名允许你传递一个参数。 我已经添加到我的.bashrc(或.bash_profile如果Mac):

 function lazygit() { git add . git commit -a -m "$1" git push } 

这允许你提供一个提交消息,比如

 lazygit "My commit msg" 

你当然可以通过接受更多的论据,比如推动哪个偏远的地方,或者哪个分支来加强这一点。

虽然我同意韦恩·维尔纳的怀疑,但这在技术上是一个select:

 git config alias.acp '! git commit -a -m "commit" && git push' 

其中定义了一个运行commitpush的别名。 用它作为git acp 。 请注意,这样的“shell”别名总是从你的git仓库的根目录运行。

另一个select可能是编写一个post-commit钩子来执行推送。

我结束了添加一个别名到我的.gitconfig文件:

 [alias] cmp = "!f() { git add -A && git commit -m \"$@\" && git push; }; f" 

用法: git cmp "Long commit message goes here"

添加所有文件,然后使用注释提交消息并将其推送到原点。

我认为这是一个更好的解决scheme,因为您可以控制提交消息的内容。

别名也可以从命令行定义,这将它添加到您的.gitconfig

 git config --global alias.cmp '!f() { git add -A && git commit -m "$@" && git push; }; f' 

我想你可能会误解git所devise的工作stream程。 (为了澄清/更正我在评论中的意思,你不需要git add . ,因为commit -a通常用于同样的目的 – 如果文件已被添加,添加尚未上演的更改)

通常你会做这样的事情:

 # make some changes $ git commit -a -m "Changed something" # make some more changes $ git commit -a -m "Changed something else" 

洗,冲洗,重复,直到你完成了特征X,或者你在停止点,或者你只是希望其他人看到你做了什么。 那你呢

 $ git push 

Git不是SVN – 但是看起来你正在尝试使用它。 在这篇文章的最后,你可能会发现一些资源是有用的。

设置为bash中的别名:

 $ alias lazygit="git add .; git commit -a -m '...'; git push;"; 

叫它:

 $ lazygit 

(为了使这个别名永久,你必须将它包含在你的.bashrc或.bash_profile中)

我在我的.bash_profile上使用这个

 gitpush() { git add . git commit -m "$*" git push } alias gp=gitpush 

它执行像

 gp A really long commit message 

别忘了在保存别名后运行source ~/.bash_profile

您可以使用bash脚本,设置别名来启动任何命令或一组命令

 git commit -am "your message" && git push 

如果文件已经被跟踪,那么你不需要运行git add ,你可以简单地写git commit -am 'your message'

如果你不想写一个提交消息,你可能会考虑做类似的事情

git commit --allow-empty-message -am ''

你可以尝试gitu 。

第一次(必须安装节点js):

 npm install -g git-upload 

之后:

 gitu COMMIT_MSG 

一次发出这三个命令。

好的一点是, 当你重新安装你的系统或者你想在不同的计算机上这样做时 ,你不必担心,也不需要修改文件。 这也适用于不同的平台 (不仅仅是Linux和Mac,而且还包括命令提示符下的Windows,比如cmdpowershell ),只需要安装npmnodejs (当然是git )。

正如在这个答案中提到的,你可以创build一个git别名并为它分配一组命令。 在这种情况下,这将是:

 git config --global alias.add-com-push '!git add . && git commit -a -m "commit" && git push' 

和它一起使用

 git add-com-push 

我使用batch file:

 @ECHO OFF SET /p comment=Comment: git add * git commit -a -m "%comment%" git push 

上面的脚本有一些问题:

移动“移除”参数$ 1,否则,“推”将读取它并“误解它”。

我的提示:

git config –global alias.acpp'!git add -A && branchatu =“$(git symbolic-ref HEAD 2> / dev / null)”&& branchatu = $ {branchatu ## refs / heads /} && git commit – m“$ 1”&& shift && git pull -u origin $ branchatu && git push -u origin $ branchatu'

当你想要git commit的类似svn的行为时,在你的.gitconfig的git别名中使用它

commit = "!f() { git commit \"$@\" && git push; };f"

我做了这个.sh脚本的命令

 #!/bin/sh cd LOCALDIRECTORYNAME/ git config --global user.email "YOURMAILADDRESS" git config --global user.name "YOURUSERNAME" git init git status git add -A && git commit -m "MASSAGEFORCOMMITS" git push origin master 

由于该问题没有指定哪个shell,因此这里是基于早期答案的eshell版本。 这在eshell别名文件,这可能在〜/ .emacs.d / eshell /别名我已经添加了第一部分z https://github.com/rupa/z/ ,让你快速cd到一个目录,这样无论你当前的目录是什么都可以运行。

 alias census z cens; git add .; git commit -m "fast"; git push