有没有办法在一个中使用这三个命令?git添加,提交和推送命令在一个?
git add .
git commit -a -m "commit" (do not need commit message either)
git push
有时我只更改一个字母,CSS填充或其他东西。不过,我必须编写所有三个命令来推送更改。有很多项目,我只有一个推动者,所以这个命令会很棒!
有没有办法在一个中使用这三个命令?git添加,提交和推送命令在一个?
git add .
git commit -a -m "commit" (do not need commit message either)
git push
有时我只更改一个字母,CSS填充或其他东西。不过,我必须编写所有三个命令来推送更改。有很多项目,我只有一个推动者,所以这个命令会很棒!
我想你可能会误解git所设计的工作流程。 (要澄清/更正我在评论中的含义,您不需要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 - 但它似乎是你试图使用它。您可能会发现文章here末尾的一些资源有一定用处。
虽然我对他的怀疑与韦恩沃纳同意,这在技术上是一个选项:
git config alias.acp '! git commit -a -m "commit" && git push'
它定义了运行commit
和push
的别名。使用它作为git acp
。请注意,这样的“shell”别名总是从你的git仓库的根目录运行。
另一种选择可能是编写一个post-commit钩子来执行推送。
@wlz我只是试了一下,它工作正常。请注意整个字符串在单引号内。 'git'自动添加转义(用'git config -e'检查)。 –
对不起,你是对的:)。我直接编辑.gitconfig文件。 “已经逃脱了”。 – wlz
这绝对很酷。 –
如果该文件已被跟踪,那么你并不需要运行git add
,你可以简单地写git commit -am 'your message'
如果你不想写一个提交信息,你可能会考虑做一些像
git commit --allow-empty-message -am ''
大厦断@加文的回答是:
制作lazygit而不是功能一个别名允许你传递一个参数。我已将以下内容添加到我的.bashrc(或。在.bash_profile如果苹果机):
function lazygit() {
git add .
git commit -a -m "$1"
git push
}
这使您可以提供一个提交信息,如
lazygit "My commit msg"
,可以将这个建立过程的牛肉更被接受甚至更多的参数,比如哪些偏远的地方的推到,或哪个分支。
不工作在我的Ubuntu服务器上,有没有东西更多我应该做一个像重新启动或什么的?我将你的函数添加到我的.bashrc脚本的末尾。 –
@JoeYahchouchi不工作如何?你重置你的终端(或资源的bashrc文件)?如果你输入'which lazygit',会发生什么? – btse
没关系,它的工作原理,谢谢。服务器重新启动有窍门,我想修改我的评论,但我找不到它。 –
您可以使用bash脚本,设置别名发出命令
git commit -am "your message" && git push
如果你想让这个答案,请添加更多关于它如何工作的评论。只是代码转储的答案通常不被广泛接受。见[回答]。 –
对不起,先生,我会更新我的答案 – vuhung3990
我认为这应该是正确的答案。它尽可能简洁地回答问题。只需输入到终端,它的工作原理!如果你不想添加一个别名,另一种方法是简单地创建一个textExpander展开并通过一个组合键来触发它。 – eonist
正如this答复中提到的任何命令或组,您可以创建一个git的别名并分配了一套它的命令。在这种情况下,这将是:
git config --global alias.add-com-push '!git add . && git commit -a -m "commit" && git push'
与
git add-com-push
这不会添加任何以前的答案。 – BanksySan
对不起,你是对的。我想我没有注意到Tilman Vogel的答案和我的答案是一样的。我应该删除它吗? – cristianzamar
使用它有一些问题与上面的脚本:
转移 “删除” 参数$ 1,否则“推“将会读取它并”误解它“。
我的尖端:
混帐配置--global alias.acpp” git的添加-A & & branchatu = “$(GIT 符号-REF HEAD 2>的/ dev /空)” & & branchatu = $ {branchatu ##参/头/} & & git的承诺-m “$ 1” & &移& & GIT中拉-u原点$ branchatu & & GIT中 推-u或igin $ branchatu”
我用这对我的.bash_profile
gitpush() {
git add .
git commit -m "$*"
git push
}
alias gp=gitpush
它执行像
gp A really long commit message
不要忘记保存别名后运行source ~/.bash_profile
。
我真的很喜欢这个。 ...并因此将其采用到我自己的〜/ .bash_profile;)谢谢。+1 –
最后我加入一个别名我.gitconfig
文件:
[alias]
cmp = "!f() { git add -A && git commit -m \"[email protected]\" && git push; }; f"
用法:git cmp "Long commit message goes here"
添加的所有文件,然后使用该提交信息的评论,并会将它推到原点。
我认为这是一个更好的解决方案,因为您可以控制提交消息的内容。
别名可以通过命令行还规定,该把它添加到您的.gitconfig
:
git config --global alias.cmp '!f() { git add -A && git commit -m "[email protected]" && git push; }; f'
我使用批处理文件:
@ECHO OFF
SET /p comment=Comment:
git add *
git commit -a -m "%comment%"
git push
上使用,如果您从命令行接受参数,probs会更容易。我只是去“lezygit MESSAGE”等它非常酷! –
当你想的Git SVN样行为提交,在你的git别名中使用.gitconfig
commit = "!f() { git commit \"[email protected]\" && git push; };f"
您可以尝试gitu。
第一次(节点JS必须安装):
npm install -g git-upload
之后:
gitu COMMIT_MSG
要一次发出这三个命令。
好事是你不必担心当你重新安装你的系统或当你想在不同的计算机上这样做,并且不需要文件修改。 这也工作在不同的平台(不只是Linux和Mac,而且在Windows下一样cmd
和powershell
命令提示符)只是你必须安装npm
和nodejs
(git
当然)。
我这样做.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
由于问题没有指定哪个壳,这里是基于早期的答案ESHELL版本。这在eshell别名文件中,可能在〜/ .emacs.d/eshell /别名中我已经添加了第一部分z https://github.com/rupa/z/,它让你快速cd到一个目录,这样无论你的目录当前目录是。
alias census z cens; git add .; git commit -m "fast"; git push
如果你想更好地编辑你的提交信息,我的意思是添加多个线等等......然后
git commit -a && git push
将打开编辑器,一旦你保存它也将推动信息它。
添加在~/.bash_profile
添加,并提交一个命令推放:
function g() { git commit -a -m "$*"; git push; }
用法:
g your commit message
g your commit message 'message'
虽然你不能使用分号或括号中不需要引号你的提交消息(允许单引号)。如果你想要其中的任何一个,只需在你的邮件中加双引号,例如:
g "your commit message; (message)"
要在您的留言评论做到:
g "your commit message:
> your note"
也有以类似的方式加入并提交功能:
function c() { git add --all; git commit -m "$*"; }
作品完全相同的方式g
函数并具有相同的约束。代替c
。 例如
c your commit message
您还可以添加一个别名推到远程:
alias p='git push'
用法:
p
这相当于到2个字母,c
并与工作时p
您使用git存储库。或者,您可以使用g
而不是只用一个字母来完成。
全部别名和功能的列表: https://gist.github.com/matt360/0c5765d6f0579a5aa74641bc47ae50ac
建设关lazygit
答案,下面的解决方案增加了一个用户检前推,以验证更改。如果取消,它将恢复命令。而且只有在当地回购协议发生变化时才会发生。
### SAFER LAZY GIT
function lazygit() {
git add .
if git commit -a -m "$1"; then
read -r -p "Are you sure you want to push these changes? [y/N]} " response
case "$response" in
[yY][eE][sS]|[yY])
git push
;;
*)
git reset HEAD~1 --soft
echo "Reverted changes."
;;
esac
fi
}
您是否试过编写shell脚本? – Paul
你不需要提交消息? [否](http://i.imgur.com/a9IAGPv.jpg)。另外,'-a'的意思是'添加',所以有一个。 –
http://stackoverflow.com/questions/7852148/function-in-bash-to-commit-and-push-in-one-command – CodeGroover