2

私は、プロジェクトのディレクトリツリーの既存のスナップショット(gitやその他のバージョン管理ではなく、プレーンでプリミティブなフォルダーコピーによって保存されたもの)を移動することにより、アプリケーション開発の履歴を「後知恵で文書化」する過程にあります。 gitに。

gitの新しい概念と新しい用語の学習に苦労した後、突然、「おっと...私の最後のgit commit+ git branch <branchname>1つのスナップショットをスキップした」と気付いたとき、この移行プロセスは順調に進んでいたようです。

スナップショットをコミットする順序は私にとって重要なので、最後のgit commit+を完全に元に戻したいと思いますgit branch <branchname>

つまり、Gitブックの「Undoingin Git 」の章の下部で定義されているように、「コミットを変更して修正する」ということです。

すべてがまだローカルであるため(私はまだ何も「公開」も「プッシュ」もしていません)、これは「履歴の書き換え」に関する警告と一致していると思います。:)

私の理解に基づいて必要な次の手順を確認または修正していただけますか?

  1. 作業ディレクトリを空にします(.gitもちろん、サブディレクトリを削除せずに)
  2. git checkout <folder-name> (作業ディレクトリを、間違ったフォルダをコミットしてgitブランチでタグ付けした直後の状態に戻します)
  3. git branch -D <branchname-of-mistaken-folder-commit>
  4. git commit --amend

この時点で、gitは最後のブランチとコミットが行われたことをもはや覚えておらず、作業ディレクトリには誤ったフォルダが含まれていると思います(これを削除し、スキップしたフォルダに完全に置き換えます)。これは正しいです?

4

1 に答える 1

1

masterブランチにいると仮定して、今行ったコミットを削除するには、次のことを行う必要があります。

  1. git branch -D <name of the branch>ブランチを削除するには
  2. git reset --hard HEAD^現在のブランチを前のコミットとそれを含む作業ディレクトリにリセットします

その後、忘れたディレクトリを通常どおりコミットしてから、リセットしたディレクトリをコミットできます。

于 2011-07-09T17:04:50.960 に答える