19

最近、作業中のブランチを「マスター」ブランチとマージしました。origin/masteranと anorigin/HEADブランチの両方を作成したプッシュまたはプル時に、(まだ git n00b のようなものです) 何かを実行している必要があります。残念ながら、これを実行したコマンドを記録していませんでした。現在、私のチームのマスター コピーには、プロジェクトをチェックアウトしたときに (clone新しい場所に移動したとしても) 入手できないコードがたくさんあります。

Sourcetree が表示しているもののスクリーンショットを次に示します。

2支店

私は本当にこれを解決する必要があるので、私は仕事を続けることができるので、どんな助けも大歓迎です.

4

2 に答える 2

15

これは master への単なるポインタであり、必要に応じてシンボリック リンクです。ターミナルで次のように実行することで安全に削除できます (または、Windows ユーザーの場合は git bash/cygwin)。

  1. リポジトリに移動します
  2. 実行する:git remote set-head origin -d

今はなくなっているはずです:

$ git branch -r
origin/master
于 2014-07-30T08:49:40.333 に答える
8

で始まるブランチはorigin/、いわゆる「リモート トラッキング ブランチ」です。originそれらは、リポジトリから git が最後にフェッチされたときのリポジトリ内のブランチの位置を示します。

心配する必要はありません。これは実際に役立つ情報です。これらのブランチの位置が古くなっていると思われる場合は、次を実行できます。

git fetch origin

...それらを更新します。

どのリポジトリでもHEAD、現在のブランチ (または特定のブランチにいない場合は現在のコミット) を表す特別な種類の ref (「symref」) です。


ダイアグラムで、masterブランチが実際には 1 つ前のコミットであることがわかりますorigin/master。そのため、同僚が にプッシュしておりmaster、最近origin実行した場合git fetch origin(または同等のものを実行した場合)、すでにすべての作業が完了しています。ただし、コミットをプッシュするまで、コミットを逃すことになります。

あなたは言う:

現在、私のチームのマスター コピーには、プロジェクトをチェックアウトしたときに (新しい場所にクローンしたとしても) 入手できないコードがたくさんあります。

その場合は、別のブランチや別のリポジトリにプッシュしているか、作業をまったくプッシュしていない可能性があります。

于 2012-07-17T17:15:09.600 に答える