是否可以同时运行以下命令:
1. git add . 2. git commit -m "Message" 3. git push orgin/master
我知道前两个可以像这样加入:
git commit -am "Message"
我想在本地提交后推送到远程,而不必完成所有这些步骤。
答案 0 :(得分:5)
恕我直言只有在
时这才有可能这会消除git给你的灵活性和力量。
如果是的话,
您可以使用'alias'
所以这样的事情可以胜任。
$ gitFunction() {
> git add .
> git commit -m "$1"
> git push origin }
$ alias git-all="gitFunction"
$ git-all 'commit message' //Will do everything for you.
或强>
将其添加到.git / config文件中。
[alias]
sync = "!sync() { git add . && git commit -m \"$1\" && git push $2; }; sync"
稍后您可以使用
$git sync 'commit message' remote_repo
但你不应该这样做!!
<强>为什么吗
虽然不在议题中,但我想引用Principle of sufficient reason
没有任何理由或原因
Git,当Linus设计时,由于充分的理由,这些步骤是分开的。如果你正在滥用它,那么你将无法充分利用它。因此,遵循最佳实践是很好的。
根据您的目标,您可以将git视为一种将源代码更改上传到远程服务器的工具,这是错误的,并且带走了git为您提供的所有优点。
为什么git add
不应该自动化?
git add可帮助您添加未跟踪的文件/将修改后的文件添加到临时区域。稍后将进入您的提交。执行git add .
会将所有内容添加到暂存区域。大多数情况下,你会有一些东西,你不想提交或在特定的提交中。
为什么git commit -m "Message"
不应该自动化?
提交消息说明上次提交后发生的更改。提交消息可帮助其他程序员与您协作以了解您所做的更改。所以你不应该在提交消息中写出无意义
为什么git push
不应该自动化?
即使你现在的逻辑,如果你不是唯一为项目做贡献的程序员,这一步也应该失败。所以遥控器会有变化,你应该拉。在最好的情况下,会发生自动合并,您可以直接执行git push作为下一步。但是在发生冲突的情况下,您需要解决冲突,然后提交更改,合并然后推送(顺便说一句,如果可能的话,不容易自动化)。
此外,你不会推进同一个遥控器,你不会一直推动同一个分支。所有这些都是可变的,需要开发人员的决定。
所以,试着理解Git,然后再考虑一下这些。
阅读Pro Git这是免费的,是关于git的最佳书籍。
答案 1 :(得分:1)
你可以定义一个别名,它接受一个参数like it is described in details here
在你的情况下,我相信这应该有用
[alias]
acp = "!f() { git add . && git commit -m \"$1\" && git push origin/master; }; f"
然后你可以称之为
git acp "commit message"
此外,请查看您在Git文档中使用alias可以执行哪些操作,这是非常有用的工具。