7

TLDR : X がリモート ブランチとして存在する場合は、git checkout Xそのローカル ブランチを作成する必要があります。私の場合、単一のブランチではそうではありません。

リモートリポジトリには、master, release,および他のいくつかのブランチがあります(たとえば、refactor-update)私は:

git clone WHATEVER/repo.git
git checkout release

origin/releaseしかし、通常のブランチ切り替えメッセージが表示されず、ローカル ブランチ トラッキングも作成されません (のページによるとman) git checkout。私はまだ、すべてが期待どおりに機能することにmaster.注意してください。git checkout refactor-update

これは他のコンピューターでも再現できます (同じプラットフォームで、同じバージョンの git である可能性があります)。私は(うまくいくと思ったからではなく、必死になって)、releaseブランチを削除してバックアップに置き換えましたが、masterそれぞれ動作に変更はありません(git push origin :release && git push origin master:release

問題の原因となっている可能性のあるものに行き詰まっています。私の疑いでは、何らかの理由でgit checkout単語を認識していないようでrelease、単にgit checkout. これをフォローアップするために、別のレポでリリースブランチを作成して、それが予約語か何かかどうかを確認しましたが、それは間違いなくこのレポジトリにあるだけです。に異常はないようです.git/config

Git バージョン: 1.8

4

4 に答える 4

1

クローンはオリジンのすべてのブランチのリモートを提供しますが、オリジンのHEADブランチ (または要求に応じて他のブランチ) のローカル ブランチのみを提供します。

TLDR: X がリモート ブランチとして存在する場合、git checkout X はそのローカル ブランチを作成する必要があります。私の場合、単一のブランチではそうではありません。

私はあえてそれに異議を唱えます。チェックアウトでブランチを作成する場合は、ブランチを作成するように指示します。

git checkout -t origin/release     # create branch `release` tracking `origin/release`.

git checkout -b foobar             # create branch `foobar` based on your HEAD commit

[編集:]

私は今、苦情を理解していると思います。

git checkout nameする:

  • ローカル ブランチまたは明示的なリモート ブランチの場合は、それに切り替えます。
  • 追跡されたパスの場合は、リセットします
  • リモート ブランチの場合は、追跡ブランチを作成してそれに切り替えます。

また、リセットを優先するため、安全なことを選択できたときに、安全でないことを選択する可能性があります。

于 2013-09-25T03:54:19.357 に答える
0

-tオプションがありません。

git checkout -t origin/release

releaseを追跡するローカル ブランチを作成してチェックアウトしますorigin/release

新しいバージョンの Git では、これで十分です。

git checkout release
于 2013-09-25T09:22:35.727 に答える
0

-bオプションがありません

やってみる

git checkout -b branch_name

編集注:以下のコメントで説明されているように、これは、当時私が使用していたgitバージョン1.7.9以下を使用している場合にのみ当てはまります。

于 2013-09-16T17:20:46.407 に答える