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

set*_*thi 0 git push github github-services

是否可以一次运行以下命令:

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

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

git commit -am "Message"

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

Jes*_*ese 5

恕我直言只有这样才有可能

  • 你是唯一的程序员
  • 您只使用一个本地存储库将更改推送到远程

这消除了git为您提供的灵活性和强大功能.

如果是这样,

你可以使用'别名'

所以这样的事情可以做到这一点.

$ gitFunction() {
> git add .
> git commit -m "$1"
> git push origin }
$ alias git-all="gitFunction" 
$ git-all 'commit message' //Will do everything for you.
Run Code Online (Sandbox Code Playgroud)

要么

将其添加到.git/config文件中.

 [alias]
        sync = "!sync() { git add . && git commit -m \"$1\" && git push $2; }; sync"
Run Code Online (Sandbox Code Playgroud)

以后你可以使用

 $git sync 'commit message' remote_repo
Run Code Online (Sandbox Code Playgroud)

但你不应该这样做!!

为什么?

虽然不谈这个话题,但我想引用充分理由的原则

没有任何理由或原因

当由Linus设计时,Git因为充分的理由而将这些步骤分开.如果你正在滥用它,那么你将无法充分利用它.因此,遵循最佳实践是好事.

根据你想要实现的目标,你可以将git视为一种工具,将源代码更改上传到远程服务器,这是错误的,并带走了git给你的所有优点.

为什么git add不应该自动化?

git add可以帮助您添加未跟踪的文件/将修改后的文件添加到临时区域.稍后将进入您的提交.做git add .会将所有内容添加到您的临时区域.大多数情况下,你会有一些东西,你不想提交或在特定的提交中.

为什么git commit -m "Message"不应该自动化?

提交消息解释了上次提交后发生的更改.提交消息可帮助其他程序员与您协作以了解您所做的更改.所以你不应该在提交消息中写出无意义

为什么git push不应该自动化?

即使你现在的逻辑,如果你不是唯一为项目做贡献的程序员,这一步也应该失败.所以遥控器会有变化,你应该拉.在最好的情况下,会发生自动合并,您可以直接执行git push作为下一步.但是在发生冲突的情况下,您需要解决冲突,然后提交更改,合并然后推送(顺便说一句,如果可能的话,不容易自动化).

此外,你不会推进同一个遥控器,你不会一直推动同一个分支.所有这些都是可变的,需要开发人员的决定.

所以,试着理解Git,然后再考虑一下这些.

阅读Pro Git它是免费的,是关于git的最佳书籍.