回答:
以下のようKindDragonの答えは言及、あなたは再作成することができますmaster
を直接origin/master
持ちます:
git checkout -B master origin/master
git checkout
manページには 言及します:
場合は-B
与えられて、<new_branch>
それが存在しない場合は作成されます。それ以外の場合はリセットされます。これは、トランザクションに相当するものです
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
当初提案された:
何かのようなもの:
$ git checkout master
# remember where the master was referencing to
$ git branch previous_master
# Reset master back to origin/master
$ git reset --hard origin/master
ステップ2はオプションです。
Gitは次のコマンドをサポートしています。
git checkout -B master origin/master
origin/master
ブランチをチェックアウトしてから、ブランチをリセットしmaster
ます。
git fetch origin master
れることを確認する前にする必要origin/master
はありませんか?
git fetch
最初にすべきすべてのソリューションで
VonCの答えでさえ、このオプションに比べて複雑だと思います。
git update-ref refs/heads/master origin/master
git reset --hard master
gitは、refのすべての値を(reflogを介して)自動的に記録します。そのため、そのコマンドを実行した後master@{1}
、マスターの以前の値を参照します。
VonCの答えは正しいですが、マスターの古い値をファイルシステムにチェックアウトする時間を無駄にします。
リポジトリ内の孤立オブジェクトを気にする場合は、実行できます git gc
Already on 'master'