はい、しかしそれはその歴史を変えるでしょう。このデータを取得した人は、それに対処する必要があります。何をする必要があるかについては、アップストリーム リベースからの回復セクションのリベース マン ページのセクションを参照してください。続行する前に影響を受ける人に知らせて、変更をコミットできるようにすることをお勧めします。
これで問題ない場合は、不足しているファイルがあるはずの最初のコミットをチェックアウトし、ブランチを作成し、ファイルを追加してコミットを修正します。
git checkout <commit hash>
git branch new_branch
<add the missing files>
git add .
git commit --amend <-- a text editor will open, just keep the message and continue
この時点で、ツリーは次のようになります。B
修正前のコミットと修正B'
後のコミットです。 C - D - E
それ以降のコミットです。
- A - B - C - D - E
\
- B'
履歴を「修正」するためのC - D - E
リベース。B'
<`B` should still be checked out>
git rebase -i E
エディターが開き、移動するコミットのリストが表示されます。リストB
の最初のコミットである可能性があります。削除する場合は、ファイルに , だけを残して削除しC
ます。ファイルを閉じて保存し、リベースを開始します。D
E
ファイルが後のコミットで追加されていない場合、競合は発生しないはずですが、競合が発生した場合は解決する必要があります。
ツリーは次のようになります
- A - B - C - D - E
\
- B' - C' - D' - E' <-- E' will be checked out.
コミットB - C - D - E
がブランチによって参照されなくなった場合、コミットは表示されずgit log
、後でガベージ コレクションによって削除されます。これにより、 が残りますA - B' - C' - D' - E'
。