18

Github からレポをフォークしました。実行すると、次のgit remote -vように表示されます。

origin  https://github.com/myusername/moodle.git (fetch)
origin  https://github.com/myusername/moodle.git (push)
upstream    https://github.com/moodle/moodle.git (fetch)
upstream    https://github.com/moodle/moodle.git (push)

moodle.gitは約 10 のブランチがありますが、リポジトリにはそのうちの 2 つしか表示されません。実行するgit branch -aと(すべてのブランチを表示)、次のようになります:

  MOODLE_24_STABLE// just these two on local..how?
* master//
  origin/MOODLE_13_STABLE
  origin/MOODLE_14_STABLE
  origin/MOODLE_15_STABLE
  origin/MOODLE_16_STABLE
  origin/MOODLE_17_STABLE
  origin/MOODLE_18_STABLE
  origin/MOODLE_19_STABLE
  origin/MOODLE_20_STABLE
  origin/MOODLE_21_STABLE
  origin/MOODLE_22_STABLE
  origin/MOODLE_23_STABLE
  origin/MOODLE_24_STABLE
  origin/master
  upstream/MOODLE_13_STABLE
  upstream/MOODLE_14_STABLE
  upstream/MOODLE_15_STABLE
  upstream/MOODLE_16_STABLE
  upstream/MOODLE_17_STABLE
  upstream/MOODLE_18_STABLE
  upstream/MOODLE_19_STABLE
  upstream/MOODLE_20_STABLE
  upstream/MOODLE_21_STABLE
  upstream/MOODLE_22_STABLE
  upstream/MOODLE_23_STABLE
  upstream/MOODLE_24_STABLE
  upstream/master

データの損失や不正を行わずに問題を解決するにはどうすればよいですか?

4

2 に答える 2

22

リポジトリのクローンを作成しても、ローカル リポジトリのすべてのリモート ブランチが複製されるわけではありません。多くのブランチを持つ大規模なリモート リポジトリの場合、大量のブランチでローカル名前空間が汚染されます。

リモート リポジトリのすべてのリモート ブランチを追跡するローカル ブランチを作成するためのワンライナー コマンドがありますが、これは通常は必要ありません。
必要な場合にのみ、リモート ブランチを追跡するローカル ブランチを作成します。

git checkout -b aBranch --track origin/aBranch

# or, shorter:
$ git checkout --track origin/aBranch 
Branch aBranch set up to track remote branch refs/remotes/origin/aBranch.
Switched to a new branch "aBranch"  

# even shorter at the end of this answer.

を追加する--trackと、構成をセットアップして、開始点のブランチを新しいブランチの「上流」としてマークすることができます。
この構成により、 と の 2 つのブランチ間の関係を表示するように git に指示されgit statusますgit branch -v
さらに、新しいブランチがチェックアウトされたときに、引数なしで git pull をアップストリームからプルするように指示します。


kostix--trackは、リモート ブランチからブランチをフォークするときに暗示されることについて言及しています(branch.autosetupmergeが に設定されていない場合false) 。

これで十分かも

git checkout aBranch

git checkoutマニュアルページからの正確な説明は次のとおりです。

<branch>が見つからないが、正確に 1 つのリモート ( と呼ぶ) に一致する名前を持つ追跡ブランチが存在する場合は<remote>、次のように扱います。

$ git checkout -b <branch> --track <remote>/<branch
于 2013-03-30T18:45:37.100 に答える