105

この質問をする方法は複数ある可能性があるため、ここでは問題の説明を示します。私はマスターに取り組んでいて、いくつかのことをコミットしましたが、その作業を保留することにしました。いくつかのコミットをバックアップしてから、くだらない仕事を始める前から分岐しました。実際にはこれで問題なく動作します。現在、メインの開発ブランチとして別のブランチを持っています。どうすれば物事を変えることができるのだろうかと思っているので、マスターに再び取り組んでいますが、ジャンク作業はなく、作業は別のブランチにあると言いました。

これを尋ねる/解決する方法がいくつかあります: master ブランチの名前を別の名前に変更してから、別の名前を master に変更するにはどうすればよいですか? master をバックアップしてから、過去にバックアップしたすべてのコミットを別のブランチに置くにはどうすればよいですか?

すべての(素早い)回答をありがとう!彼らはすべて良いです。

4

5 に答える 5

146

他のコメントに加えて、git-branchへの-m(移動)スイッチが役立つ場合があります。古いマスターの名前を別の名前に変更してから、新しいブランチの名前をmasterに変更できます。

git branch -m master crap_work
git branch -m previous_master master
于 2008-08-22T07:33:28.983 に答える
31

このような問題を防ぐために、別の開発戦略を検討する必要があると思います。私にとって最もうまくいくと思われる方法の 1 つは、マスター ブランチで直接開発を行わないことです。行っている変更に関係なく、常に新しいコード用に新しいブランチを作成します。

git checkout -b topic/topic_name マスター

そこから、パブリック リポジトリに変更をプッシュできます。

git push pu トピック/トピック名

または、最終的には master ブランチにマージして戻します。

git チェックアウト マスター && git マージ トピック/トピック名

古い時点に戻ってそれをマスターとして設定する必要がある場合は、現在のブランチの名前を別の名前に変更してから、古いバージョンをチェックアウトしてマスターにすることができます。

git ブランチ -m マスター ジャンク
 git co -b マスター old_sha1_value
于 2008-08-23T05:16:32.177 に答える
14

から始めてmaster、と呼ばれるブランチを作成してから、以前のコミットin-progressにリセットします。master

$ git branch in-progress
$ git reset --hard HEAD^
于 2008-08-22T06:51:10.037 に答える
7

これは比較的簡単です。

git checkout -b fake_master master # fake_master now points to the same commit as master
git branch -D master               # get rid of incorrect master
git checkout -b master real_master # master now points to your actual master
git checkout master                # optional -- switch on to your master branch
于 2008-08-22T06:40:04.917 に答える
0

これにより、ワンステップでマスターが任意のポイントに設定されます。

git checkout -B master new_point
于 2012-08-18T18:28:45.933 に答える