は、次のステップを考えてみ戻すとリベース明確化は
git checkout -b new_branch
touch foo2.txt
git add .
git commit -m 'added foo2.txt'
今、私たちはよmasterブランチに戻って、最初のコミットを元に戻してください(注意:git logコマンドを使用して、 'initial commit'のコミットハッシュを見つけることができます)。
git checkout master
git revert <commit hash of initial commit>
この時点では、masterブランチにはfoo.txtもfoo2.txtもありません。さて、new_branchは、この時点で
git merge new_branch
を習得するためにマージさせ、foo2.txtは現在、マスターにマージされますが、foo.txtのはそこではありません。
質問ですが、どうすればfoo.txtをマスターに戻すことができますか?私はこれをやってみた:
git rebase new_branch
しかし、それを戻すことはありません。したがって、一般的に、マスターでコミットを元に戻すと、別のブランチをマスターに戻してマージする必要があります。どのように 'missing'ファイル(この例ではfoo.txt)を引き継ぐ必要がありますか?
私が見つけた唯一の回避策は、マスターを削除してnew_branchの名前をmasterに変更することでした。
「マスターをこの新しいHEADにリセットする必要がありますか?」という手順を明確にすることはできますか? – dcp
@dcp 'git branch -D master; git branch master'または現在のHEADのsha1と' git checkout master; git reset --hard'を書き留めてください。 –
ElpieKay
有益な情報をありがとう、gitでこれらのことを行うさまざまな方法を示してくれて本当に良い答えです。 – dcp