git checkout -b foo
ブランチをオンにしますfoo
(存在しない場合でも作成されます)。ただし、foo
ブランチがすでに存在する場合は、次のようなエラーがスローされます。
fatal: A branch named 'foo' already exists.
次のチェックを実行するコマンドは何ですか?
- ブランチがすでに存在する場合は、それをオンにするだけです(
git checkout foo
) - ブランチが存在しない場合は作成してオンにします(
git checkout -b foo
)
ベストアンサー1
2019年第3四半期アップデート(Git 2.23):現在、git switch
指示!
git switch -c aBranch
または、ブランチがすでに存在する場合:
git switch aBranch
私は2020年に説明、git switch
コマンドは「実験的な「名前だけ」であり、今後も存続するでしょう。
ただし、エイリアスが必要になります。初め既存のブランチに切り替え、失敗した場合(ブランチが実際にはない存在する場合、それを作成します。
switchoc = "!f() { git switch $1 2>/dev/null || git switch -c $1; }; f"
エイリアスの名前に注意してください: switchoc (「switch or create」の略)。
その組み合わせgit switch
+git switch -c
は正確にOP が求めているもの。
2021年にこれを試す人は、
git
既存のコマンドをエイリアスで隠すことはできませんはコマンドな
ので、このエイリアス (名前は " ") は機能しません。エイリアスには、" "などの一意の名前を作成する必要があります。git switch
git
switch
switchit
ブグサチコメントで言及されているエイリアスはより安全です(イジー・パベルカの答え):
switch = "!f() { git checkout $1 2>/dev/null || git checkout -b $1; }; f"
git switch abranch
元の回答 (2014) 次の方法を試すことができます:
git checkout -B foo
が指定されている場合
-B
、<new_branch>
存在しない場合は作成され、そうでない場合はリセットされます。これは、トランザクション的に
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
後述するように、このコマンドはブランチをリセットするため、必ずしも望ましいとは限らないので注意して使用してください。
このコマンドで誤ってブランチをリセットした場合は、簡単に以前の状態に戻すことができますと:
git reset HEAD@{1}
git エイリアスを次のように設定します。
git config alias.switchoc '!f() { git switch $1 2>/dev/null || git switch -c $1; }; f'
次に、次のように使用します。
git switchoc <branch>