简答
如果您确实喜欢明确并在必要时使用-u 选项,
但只是不想输入整个:
git push -u origin foo
那么你可以使用下面的别名:
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
只需输入:
git push-u
长答案
通常,需要-u(--set-upstream 的简写)是当我们刚刚创建一个新的本地分支并提交,并且我们想将其推送到上游时。远程仓库还没有新的分支,所以我们需要在推送提交之前告诉 git 创建并跟踪远程分支。这仅对分支的第一次推送是必需的。这是一个典型的场景:
git checkout -b foo # Create local branch
git commit -m "Foo" # Create local commit
git push -u origin foo # Create and track remote branch, and push commit
git commit -m "Bar" # Create local commit
git push # Push commit
就我个人而言,我确实喜欢在创建远程分支时明确使用git push -u:这是一项非常重要的操作,向全世界共享一个全新的分支。
但是,我讨厌我们必须明确写 git push -u origin foo。不仅打字很痛苦,更重要的是,它很容易出错!输入分支名称很容易出错,新的远程分支不会和你的本地分支同名!在大多数情况下,实际上,您希望上游存储库为origin,并且上游分支与您的本地分支具有相同的名称。
因此,我在我的.gitconfig 中使用了以下别名,它是优秀answer provided by Mark 的子集:
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
现在,我们可以执行以下操作,这仍然是明确的,但不太容易出错:
git checkout -b foo # Create local branch
git commit -m "Foo" # Create local commit
git push-u # Create and track remote branch, and push commit
git commit -m "Bar" # Create local commit
git push # Push commit