/ / remoteと通信せずにローカルブランチ用のリモートトラッキングブランチを作成します - git

remote-gitと通信せずにローカルブランチのリモートトラッキングブランチを作成する

私は地元の支店を持っています A。私はそれのためにリモートトラッキングブランチを作成する必要があります origin/A 。リモートと通信せずに作成することは可能ですか?

回答:

回答№1は2

はい。具体的には、 リモートトラッキングブランチ名 好きな origin/A 実際には 地元 エンティティ、 git branch --set-upstream-to または git checkout --track 用途 他のGitに連絡を取らずにこのローカルエンティティ。

ただし、その名前は refs/remotes/ 名前空間は 自動的に作成または更新された、 時には 自動的に破壊された、によって git fetch そして git push。からフェッチしたりプッシュしたりするとき 遠隔の その名前は origin, git fetch そして git push 取得またはプッシュの結果に基づいて適切なリモートトラッキング名を更新します。より正確には、実行中 git fetch origin に従います remote.origin.fetch 参照仕様デフォルトのrefspecは +refs/heads/*:refs/remotes/origin/*。 URLのGitがに保存されている場合 remote.origin.url 持っています origin/Aこれにより、作成または更新が行われます。 refs/remotes/origin/A 当時。

あなたが --prune オプションを選択するか、またはプルーニングを選択するオプションのいずれかを設定します。 fetch.prune = true 時には、例えば - その後、これも同じ git fetch origin 意志 除去する あなた自身の refs/remotes/origin/A ない場合 refs/heads/A Gitに存在します origin.

あなたがこれらの自動操作を気にしないと仮定して、あなた自身のGitがブランチのために2つの部分からなるフィールドを設定しようとするときあなた自身のローカルGitが課すという唯一の要件があります A その上流が origin/A。その要件はあなたのローカルリポジトリが 持ってる という名前の参照 refs/remotes/origin/A。まだ持っていない場合は、コマンド:

git update-ref refs/remotes/origin/A <valid-commit-specifier>

URLでGitに連絡することなく(そしてそれがあるかどうかにかかわらず)それを作成します refs/heads/A そのGitに今すぐ)。ただし、ここで有効なコミット指定子として何を使用したいのか明確ではありません。理想的な値は何でも構いません。 refs/heads/A に保存されているURLのGit上で解決されます origin つまり、それを見つけるには、そのGitに連絡する必要があります。ただし、気にしないのであれば、有効なコミット指定子なら何でも構いません。 git status 奇妙な先/後ろの数え方をする