短い答え
実際に明示的にし-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
、アップストリームブランチをローカルブランチと同じ名前にする必要があります。
したがって、私は次のエイリアスをmy .gitconfig
で使用しています。これは、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
push.default
とgit-config(1)のbranch.<name>.merge
オプションを使用できるかどうかを確認しましたか?