友人が古いバージョンの Git (彼は 1.5 と言ったと思いますか?) で行き詰まっており、-b <branch>
オプションがサポートされていないと言いました。私はそれに頭を包むことができないので、誰かが助けてくれることを本当に願っています:
を使用せずに、次のコマンドに相当するものは何-b
ですか?
git clone -b $BRANCH $REPO
編集:私は最初に求めましたgit checkout
-それは私が意図したものではありません. ごめん!
友人が古いバージョンの Git (彼は 1.5 と言ったと思いますか?) で行き詰まっており、-b <branch>
オプションがサポートされていないと言いました。私はそれに頭を包むことができないので、誰かが助けてくれることを本当に願っています:
を使用せずに、次のコマンドに相当するものは何-b
ですか?
git clone -b $BRANCH $REPO
編集:私は最初に求めましたgit checkout
-それは私が意図したものではありません. ごめん!
古い git では、これには 2 つの手順が必要でした。
git branch $BRANCH $FROM_COMMIT
git checkout $BRANCH
私が使用したことに注意してください$FROM_COMMIT
、$REPO
あなたの質問では奇妙で誤解を招くように見えます-他のリポジトリからではなく、コミットからのみブランチを作成できます.
質問が変更されたため、回答を編集します。git clone のマンページを読むと、
-b
新しく作成された HEAD を、複製されたリポジトリの HEAD が指すブランチに向ける代わりに、代わりにブランチに向けます。裸でないリポジトリでは、これがチェックアウトされるブランチです。
古いバージョンの git でこの効果を実現するには、次を使用します。
git clone $REPO
git branch $BRANCH origin/$BRANCH
git checkout $BRANCH
これにより、ローカルHEAD
が新しく作成され$BRANCH
たものに設定されます。origin/$BRANCH
(うまくいけば、私は間違っていません-テストするためにここにgitをインストールしていません…)
彼はできるはずです:
git clone -n $REPO
cd <reponame>
git checkout -b $BRANCH origin/$BRANCH
オプションがv1.2.0で有効であることを確認したので、彼が少なくとも1.5を使用している場合、これは適切なはずです。
参考までに、cloneはv1.6.5で-b
/オプションのみを取得しました。--branch
それは次のようになります。
git clone -n $REPO
git checkout -b $BRANCH origin/$BRANCH
(正しい答えについては、チャールズ・ベイリーの答えを参照してください)
リポジトリからデフォルト ブランチをフェッチしない場合はHEAD
、実際に追跡したいブランチを取得してから、独自のローカルブランチを作成する必要があります.
私はこの回答を削除したでしょうが、Charles Bailey のコメントは興味深いものです。
クローンの直後に取得しても意味がありませんが、リモートのデフォルト ブランチの不要なチェックアウトを避けるため
-n
に に渡したい場合があります。また、 へのオプション が必要です。clone
-b
checkout
確認したところ、gitより前のコミット
-b
に追加されました。 友人がこれよりも古いバージョンを使用している場合 (これは非常にありそうもないことです)、より具体的に説明する必要があります。checkout
91dcdfd3
v1.0