ギット:ブランチにデフォルトで設定されているリモートはどれですか?

StackOverflow https://stackoverflow.com/questions/4847101

  •  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_namehub/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は失敗します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top