ギット:ブランチにデフォルトで設定されているリモートはどれですか?
-
27-10-2019 - |
質問
リモートのベアリポジトリがあります hub
. 。私はそこでのみ働いています master
支店。以下のエラー メッセージの最後の文には疑問を感じます。どれがどれであるかを確認するにはどうすればよいですか 「現在のブランチにデフォルトで設定されたリモート」?また、どのように設定すればよいのでしょうか?
[myserver]~/progs $ git remote -v
hub ~/sitehub/progs.git/ (fetch)
hub ~/sitehub/progs.git/ (push)
[myserver]~/progs $ git branch -r
hub/master
[myserver]~/progs $ cat .git/HEAD
ref: refs/heads/master
[myserver]~/progs $ git pull hub
You asked to pull from the remote 'hub', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.
解決
リモートブランチを追跡する
git-branchのtrackオプションを使用して、プッシュおよびプル用のデフォルトのリモートリポジトリを指定できます。通常、これを行うには、ローカルマスターブランチを作成するときに--trackオプションを指定しますが、既に存在するため、次のように手動で構成を更新します。
.git/config
を編集する
ジェネラコディセタグプレ
これで、gitpushとgitpullを簡単に実行できます。
[
他のヒント
もっと簡単に実行できます。 .gitconfig
意味のある状態のままになります:
Git バージョン v1.8.0 以降の使用
git push -u hub master
押すとき、または:
git branch -u hub/master
または
(これにより、リモコンが 現在チェックアウトされているブランチ に hub/master
)
git branch --set-upstream-to hub/master
または
(これにより、という名前のブランチのリモートが設定されます) branch_name
に hub/master
)
git branch branch_name --set-upstream-to hub/master
使用している場合 v1.7.x
それ以前の
使わなければなりません --set-upstream
:
git branch --set-upstream master hub/master
完全を期すために:前の回答では、上流ブランチを設定する方法は説明されていますが、それを確認する方法は説明されていません。
これを行うにはいくつかの方法があります。
git branch -vv
すべてのブランチの情報を示します。(ほとんどの端末では青色でフォーマットされます)
cat .git/config
これも示しています。
参考のために:
ブランチ(マスターなど)の効果的なプッシュリモートを取得するコマンドは次のとおりです。
git config branch.master.pushRemote ||git config remote.pushDefault ||git config branch.master.remote
理由は次のとおりです(「mangitconfig」出力から):
branch.name.remote [...]は、どのリモートからフェッチ/プッシュするかをgitfetchとgitpushに指示します[...] [プッシュの場合]は remote.pushDefault (すべてのブランチの場合)[および]現在のブランチの場合[..]は branch.name.pushRemote [によってさらにオーバーライドされます。..]
何らかの理由で、「man git push」はbranch.name.remoteについてのみ通知します(3つの中で最も優先順位が低い場合でも)+設定されていない場合、pushはデフォルトでoriginになります-そうではありません、リポジトリのクローンを作成すると、branch.name.remoteがoriginに設定されますが、この設定を削除すると、originがリモートであっても、gitpushは失敗します