0

コーディングの際、私は間違いを犯したことに気付きました。使った

git checkout 7e57dbf5a7245...

古いコミットに戻します。今私が使用してコミットするとき

git commit -a

[detached HEAD f69ae14] にコミットしていると書かれています。私が使うとき

git push origin master

Everything's up to date と表示されます... この [切り離された頭] コミットをマスターにプッシュするには、何を入力すればよいですか?

4

3 に答える 3

1

maxが言ったことから離れると、ログは最初は次のようになります。

*-*[7e57db]-*-*<master>

7e57dbをチェックアウトするとgit commit、次のようになります。

*-*[7e57db]-*-*<master>
   \
    *<HEAD>

本当にやりたいのは、HEADでコミットし、7e57dbで導入された変更をマスターに再生することです。これに使用するコマンドはですgit rebase。具体的には、コミットを行ったら、次のコマンドを実行します。

git rebase master

この時点での履歴は次のようになります。

*-*[7e57db]-*-*<old-master>-*<master>

git push origin master次に、リモート参照を更新できます。

于 2012-06-24T23:30:57.887 に答える
1

現在のログは次のようなものでなければなりません

*-*-*-*[7e57db]-*-*-*<master>
       \
        *-*-*-*<HEAD>

ここで、現在の位置にリセットmasterし、現在のブランチを作成して、次の場所にプッシュする必要があります。HEADmasterorigin

git branch -f master HEAD
git checkout master
git push origin master

7e57dbと current の間のすべてのコミットが失われることに注意してくださいmaster

于 2012-06-24T00:44:45.137 に答える
0

を使用して、ヘッドを取り外したヘッドにリセットできます

git reset --hard 7e57dbf5a7245...
# and then 
git push origin master --force

これを行うと、古い頭と新しい頭の間の変更が失われます。

これらの変更を保持したい場合は、デタッチされたヘッドから新しいブランチを作成してヘッドにマージし、変更をコミットして新しいブランチをプッシュできます。

于 2012-06-24T00:43:21.643 に答える