リモートブランチと混同しています。
私のローカルリポジトリ:
(local) ---A---B---C-master
私のリモートリポジトリ(intと呼ばれる):
(int) ---A---B---C---D---E-master
私がやりたいのは、intのマスターブランチに従うようにローカルリポジトリのマスターブランチを設定することです。ローカルリポジトリ:
(local) ---A---B---C---D---E-master-remotes/int/master
そのため、intが次のように変更されます。
(int) ---A---B---C---D---E---F-master
git pull
ローカルリポジトリのマスターから実行して取得できます
(local) ---A---B---C---D---E---F-master-remotes/int/master
これが私が試したことです:
git fetch int
intのすべてのブランチをリモートブランチに取得します。intには何百ものブランチがある可能性があるため、これは厄介になる可能性があります。git fetch int master
私にコミットを取得しますが、それへの参照はありませんFETCH_HEAD
。リモートブランチもありません。git fetch int master:new_master
動作しますが、更新するたびに新しい名前が必要ではなく、リモートブランチが設定されていません。git pull int master
私が望むことをしますが、それでもリモートブランチのセットアップはありません。そうしても大丈夫だと思いますが(今のところ最高です)、リモートセットアップで十分だとあちこちで読んでいますgit pull
。git branch --track new_master int/master
、http://www.gitready.com/beginner/2009/03/09/remote-tracking-branches.htmlによる。「有効なオブジェクト名ではありません:int/master」が表示されます。git remote -v
intが定義されており、正しい位置を指していることを示しています(1.動作しました)。私が見逃しているのはint/masterブランチです。これは、まさに私が取得したいものです。git fetch in master:int/master
。さて、int / masterは作成されますが、リモートではありません。
要約すると、私は運が悪かったものをいくつか試しました。私は2がリポジトリintでマスターするためのリモートブランチを私に与えることを期待します。
私が今使用している解決策はオプション3です。
設定ファイルを手動で変更できるとどこかで読んだのですが、少し面倒ではありませんか?
設定ファイルを編集する「面倒な」方法は機能しました:
[branch "master"]
remote = int
merge = master
コマンドラインから実行できます。
$ git config branch.master.remote int
$ git config branch.master.merge master
上記のオプション2が自動的にそれを行わない理由は何ですか?その場合でもgit pull
、リモートからすべてのブランチをフェッチします。