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' 
 其中定义了一个运行commit和push的别名。 用它作为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,比如cmd和powershell ),只需要安装npm和nodejs (当然是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