大きなプロジェクトなので、コミット履歴を膨らませないというポリシーがあります。だから私が通常やっていることは、私のフィーチャーブランチにあります。私はpush -f origin featbranch
を毎日しています。終了したら、私はPRを発行します。git:rebaseして強制的に変更を失った場合
このアプローチは今日私を傷つけました。
私の仕事は私のfeatbranch
で終わった。すべてのテストなどをうまく実行した後、最初にpush -f origin featbranch
を実行しました。 origin
は私が働いているレポの私自身のクローンで、upstream
はPRが発行されたものです。
git fetch upstream master
git rebase upstream/master
git push -f origin featbranch
んがエラーを:
は、その後、私は私のfeatbranch
最新に保つためになるよう
upstream/master
は、すでに変更されていないことが、私はリベースしたかったことを想起しました。私はすべてが大丈夫だったと思った(すべてのテストなどを二重にチェックしただけだが)、恐ろしい恐怖を感じるかもしれないが、私の最新の変更は全て失われていることに気がついた。
私は今、奇妙な状況に陥っています。私は何が起こったのか分かりません。実際には、私はと非常に最初の約束とfeatbranch
に残っているように見えます:upstream/master
に間違いなくあるファイルがfeatbranch
にあります。だから、私はうんざりして、ここで何が起こったのかわからない、githubは、その支店での約束は、私が実際に昨日押した13日前からだと言います。
-f origin featbranch
のため、私の最新のコミットは回復できません - ローカルではなく、githubで回復してください。私は今から上記の方針を無視し、常に毎日押しますが、強制はしません。それにもかかわらず、私はここで何が起こったのか理解したいと思います。
'git reflog'が役に立ちます:) – knittl
はい、あなたも! :) – faboolous