結論
設定方法
これらの設定をすることで、git push, git pullが引数なしで実行できるようになります。
git branch --set-upstream-to=origin/<branch> <local_branch>
pushと同時に設定する場合
git push --set-upstream origin <local_branch>
or
git push -u origin <local_branch>
解説
git branch --set-upstream-to=origin/<branch> <local_branch>
上記のコマンドは、指定されたローカルブランチ<local_branch>
に対して、origin
リモートリポジトリの指定されたブランチ<branch>
をアップストリーム(追跡するリモートブランチ)として設定できます。
また、originはデフォルトのリモートリポジトリの名前のため、別リポジトリを指定したい場合はgit remote -vなどで確認してください。
未設定の状態でgit pullまたはpushをすると、以下のメッセージが出ます。
% git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> <local_branch>
% git push
fatal: The current branch <local_branch> has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin <local_branch>
To have this happen automatically for branches without a tracking
upstream, see 'push.autoSetupRemote' in 'git help config'.
初期リポジトリのコマンドにも記載されている
新規作成したリポジトリには以下のようにリポジトリと連携するコマンドが記載されています。
その中にも今回紹介したコマンドが記載されています。
// …or create a new repository on the command line
echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/<username>/test.git
git push -u origin main
// …or push an existing repository from the command line
git remote add origin https://github.com/<username>/test.git
git branch -M main
git push -u origin main
その他のコマンドへの影響
git statusコマンドは現在のブランチがアップストリームブランチに対してどれだけ進んでいる、または遅れているかを示す情報が表示されるようになります。