用于添加,提交和推送到远程仓库的Git捷径

时间:2013-07-17 19:39:04

标签: git github push github-services

是否可以同时运行以下命令:

1. git add .
2. git commit -m "Message"
3. git push orgin/master

我知道前两个可以像这样加入:

git commit -am "Message"

我想在本地提交后推送到远程,而不必完成所有这些步骤。

2 个答案:

答案 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可以执行哪些操作,这是非常有用的工具。