2016-10-06 16 views
2

時にはブランチを現在のコミットに移動する必要があります。私はそれを行うには2つの方法があります:git branch -fとgit checkoutを一度に実行する

git checkout foo 
git reset --hard [email protected]{1} 

私はこのように私は作業ディレクトリを2回変更する必要があるので、私はこれが好きではありません。より良いオプションは、このです:

git branch -f foo 
git checkout foo 

これは良いですが、私はちょうど私が新しいブランチgit checkout -bに切り替えたときのように、1つのステップでそれを行うしたいと思います。残念ながら、git checkout -f -b fooは機能しません。

答えて

4

別名方法が細かいですが、git checkout -Bは単一のアトミックトランザクションと同じことをしていることに注意してください:-Bが与えられた場合、それが存在しない場合

、<new_branch>が作成されます。 それ以外の場合はリセットされます。これは、「gitの チェックアウトは」成功しない限り、分岐が作成/リセットされないと言うことです

$ git branch -f <branch> [<start point>] 
    $ git checkout <branch> 

のトランザクションと同等です。

(これは -Bではなく -f -bを具体的に綴られているが、ポイントは、この git checkoutに組み込まれあるということである理由。それは明らかではありません)
1

エイリアスを使用できます。あなたのGitの設定ファイルにこれを追加します。

[alias] 
    branchout = "! git branch -f $1; git checkout $1; true" 

その後で使用:スコット・ウェルドンが示唆するようにエイリアスを作成するためにあなたのGitの設定ファイルを編集することにより、行うことができますが、あなたはまた、追加することができます

git branchout foo 
2

git configと別名:その後、

git config alias.branchout "! git branch -f $1; git checkout $1; true" 

と同じようにそれを使用する:

git branchout foo 

いつでもコマンド名branchoutを任意のものに変更して、入力する時間を短縮することができます。

関連する問題