私の職場では、10 年以上 Source Safe を使用した後、リビジョン管理のために Git に移行したばかりです (やった!)。私は今、エンジニアが新しいツールを学習するのをサポートしなければなりません。Windows で GitExtensions UI を使用していることに注意することが重要です。
数人の同僚が (UI から) 次のことを行いました。
- 中央リポジトリのクローン ( origin )
- メインの開発ブランチに基づいて、新しいローカル ブランチ ( A ) を作成します。
- Aブランチでコミットを作成する
- そのAブランチがまだチェックアウトされている間に、彼らは (誤って) メインの開発ブランチをAブランチにプルしました
プルを実行すると、GitExtensions の UI は次のようになります (残念ながら、仕事からスクリーン グラブを投稿することはできません)。
プル元:オリジン
ローカルブランチ: A
リモートブランチ:開発
マージ オプション:リモート ブランチを現在のブランチにマージする
(次にプルボタンを押します)
これは、GitExtensions のコマンド ログがプルに対して実行したことを示しています。
git pull --progress "origin" +refs/heads/develop:refs/remotes/origin/A
そのコマンドの後、ユーザーは、新しいorigin/Aリモート追跡ブランチが履歴に表示されるのを見ましたが、ブランチAが origin に存在しないことを確認しました。
何が起こったのかを理解するために git pull マニュアルを調べましたが、私たちが見ているのが GitExtensions のバグなのか、それとも git pull が何をすべきかについての私たちの誤解なのか、まだ理解できません。
ここで何が起こっているのかを理解するのを手伝ってくれる人はいますか?
前もって感謝します
編集
リモートの開発ブランチをローカルの Aブランチにプルしても意味がないことはわかっており、リモートの追跡ブランチを削除して状況を解決する方法も知っています。私が本当に望んでいるのは、オリジンにAブランチが存在しなかったため、最初に作成されたオリジン/Aリモート追跡ブランチの背後にあるロジックを理解することです。
ありがとう