2011-04-20 10:34:06 +0000 2011-04-20 10:34:06 +0000
235
235

master」を「origin/master」にリセットするにはどうすればいいですか?

もっと簡単な方法で以下のようなことができますか?

git checkout origin/master
git branch -D master
git branch master
git checkout master

回答 (4)

343
343
343
2011-04-20 11:22:10 +0000

KindDragon ](https://superuser.com/users/64719/kinddragon)の[ 回答 ](https://superuser.com/a/802416/141)が言及しているように、`master`で直接`origin/master`を再作成するには:

git checkout -B master origin/master

を使用します。これは、

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

Git 2以降のトランザクションに相当します。 23+ (2019年8月) では、 git checkoutがあまりにも紛らわしい なので、新しい (まだ実験的な) コマンドは * -B **:

git switch -C master origin/master

それはつまり:

-C <new-branch>
--force-create <new-branch>

<new_branch>がすでに存在する場合、それが git checkoutにリセットされることを除いて、git switchと似ています。
これは便利なショートカットです:

$ git branch -f <new-branch>
$ git switch <new-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は任意です。

102
102
102
2014-08-24 19:30:10 +0000

Gitはこのコマンドをサポートしています:

git checkout -B master origin/master

origin/master ブランチをチェックアウトして、そこでmaster ブランチをリセットします。

30
30
30
2013-01-23 20:48:07 +0000
git update-ref refs/heads/master origin/master
git reset --hard master

git は自動的に (reflog を通して) ref のすべての値をログに記録します。

VonC の答えは正しいのですが、古い master の値をファイルシステムにチェックアウトするのに時間を浪費してしまいます。

22
22
22
2014-06-25 15:47:13 +0000

既にmaster上にある場合は、以下のようにしてください:

git reset --hard origin/master

ローカルのmasterブランチをリモートのorigin/masterに指定し、作業ディレクトリの変更をすべて破棄します。