0

私はgitに比較的慣れていないので、状況を正しく表現するのが難しいかもしれないと言って、この前置きをしましょう。

私はプロジェクトでいくつかの作業を行っていましたが、行った変更をコミットしたいと思いました。次のいくつかのコマンドを実行しました。

   git add .
   git commit -m "Finished user signup"

この時点で、コミットを処理し、すべての変更、挿入、および削除を処理したように見えました。それから私は先に進みました:

    git checkout master

マスターブランチに正常に切り替わりました。当時は支店にいたと思ってマージしてみましたが、うまくいかなかったので先に進みました。私はプッシュし、すべてが最新でした。次に、他のファイルにいくつかの簡単な変更を加えて、次のことを試しました。

    git commit -am "Add SSL in production"

成功しました。ただし、この最後のコミット前の変更はすべてなくなったので、可能であれば元に戻したいと思います。私は今、私がフォローしているチュートリアルのステップを実行するだけでなく、一歩下がって実際にgitを理解する必要があることに気付きましたが、可能であれば、これにマリガンを付けたいと思っています。ファイルを元に戻す方法について何かアイデアがあれば、本当にあなたの助けを借りることができます。

編集:「gitlog」でログを確認しようとしましたが、回復したいコミットの兆候が表示されません...

4

3 に答える 3

1

ブランチがチェックアウトされていないときに変更をコミットすることが理由である場合は、で欠落しているコミットを追跡できる可能性がありますgit reflog。その出力の最初の列には、探しているコミットのフィンガープリントがリストされています。回復したい特定のコミットを見つけたら、たとえばabc123、を実行してそれを指すブランチを作成できますgit branch recovery abc123

于 2012-04-24T11:25:52.797 に答える
1

私が理解できることから、あなたはトピックブランチからマスターブランチに切り替えましたが、トピックブランチのコミットをマージしませんでした。これは、gitコマンドのmergeまたはrebaseを使用して実行できます。

# Be sure you're in the master branch, you should see a star before master
$git checkout master
$git branch
# Now take the commits from the topic-branch
$git rebase TOPIC_BRANCH_NAME

これを使用$git logすると、他のブランチのコミットを確認できるはずです。

于 2012-04-24T11:55:37.683 に答える
0

次の場合は、最後のコミットを省略する必要があると思います

git reset HEAD^1

最後のhead(commit)を省略します

于 2012-04-24T11:32:29.687 に答える