1

で少し助けが必要ですgit。私の現在の「マスター」にはいくつかの問題があったので、私はしばらく前から機能しているとわかっていたバージョンをチェックアウトしました。

$ git checkout <hash>

それを「前」と呼びましょう。次に、「以前」に編集を加えて、思いどおりに機能するようにしました。次に、「前へ」をgitリポジトリにコミットしてプッシュしました。もちろん、レポでは、「マスター」はまだ問題のある古い「マスター」です。私がしなければならないことは、私のコンピューター上の「前の」(新しい編集を含む)を「マスター」に変換し、それをリポジトリにプッシュすることだと思います。それ、どうやったら出来るの?私はそれを読んrebaseで試しましたが、うまくいきません。「リベースできません:ステージングされていない変更があります」というエラーメッセージが表示されます。

4

4 に答える 4

3

おそらく、あなたがやったことgit checkout <hash>は、新しい切り離されたHEADを手に入れることです。

必要に応じて、誤ったマスター(呼び出されるoldmaster)の参照を保持します。

git branch oldmaster master

マスター参照を削除します。

git branch -D master

現在の作業ブランチ(切り離されたHEAD)を新しいマスターブランチにします。

git checkout -b master

次に、変更をコミットします(おそらく、必要に応じて新しいファイルを追加した後)。

git commit ...
于 2012-10-16T00:21:59.140 に答える
1

「マスター」にどれだけ戻る必要があるかはわかりませんが、git revert <hash>分岐したポイントまでさかのぼることができます。これにより、履歴を失うことなく、すべてのコミットが「取り消され」ます。

この投稿はあなたを助けるかもしれません:複数のgitコミットを元に戻す

于 2012-10-16T00:16:36.373 に答える
0

おそらく、実行git checkout master; git status;してみて、実際にマスターブランチにステージングされていない変更があるかどうかを確認してください。この場合は、リベースする前に、これらの変更をコミットするか、おそらく隠してください。また、前のブランチで変更が正常にコミットされたことを確認する必要があります。

于 2012-10-16T00:17:03.750 に答える
0

マスターブランチを元に戻す簡単な方法は、resetを使用することです。

git checkout master
git reset --hard <hash>

次に、ブランチはいくつかのコミットによってオリジンマスターの後ろになります。修正するには:

git push origin master -f

これにより、コミットが現在の位置よりも先に強制的にドロップされます。

于 2012-10-16T04:07:23.557 に答える