親愛なる親切なスタックオーバーフローのメンバー、
私はこの質問に対する答えを探してしばらく読んでいましたが、具体的に何も見つけることができなかったので、何らかの意見を求めたいと思いました.
シナリオは次のとおりです。
私は、第三者のためにウェブデザインをしている別の請負業者の下請け業務を行ってきました。彼が私に仕事を与えた後、物事を分離しておくために(そして彼が私の仕事を再確認できるように)、プライベートサーバー上のリモートgitに元のgitを複製しました。次に、(明らかに) この git をローカル コンピューターに複製しました。
私は自分の名前でいくつか (~5) のコミットを行い、それらをプライベート サーバーのリモート git にプッシュしました。次に、請負業者はすべてのコミットを自分の名前にする必要があることに気づき、ある種のプログラムまたはコマンドを実行して、私が行ったすべてのコミットを変更し、代わりに自分の名前を作成者/コミッターとして表示し、これらのコミットを元のコミットにプッシュしました。リモートのサードパーティ git。[補足として、彼が何を実行したのか正確にはわかりませんが、ここの多くのスレッドで議論されている、歴史を破るフィルターブランチ コマンドのスクリプト化されたバージョンであると推測しています {最良の方法: 作成者とコミッターを変更するGit での複数のコミットの名前と電子メール} (そのバージョンは git ヘルプ ページにもあります)]
この時点で、請負業者はこれを行ったことを通知し、ローカル git の設定を彼の user.name と user.email に変更するまで、プライベート サーバーのリモート git にコミットまたはプッシュしないように言いました。残念ながら、通知を受けたときには、すでにローカル リポジトリでかなりの作業を行っていました。
だからここに私の問題があります:私が読んだすべてから、私の仕事を続けるには、ローカルリポジトリを削除し、現在プライベートサーバーにあるバージョンを再クローンすることしかないと思います(以前のコミットSHAとの競合を避けるため) -1秒)。言い換えれば、現在、プライベートサーバーのリモートgitのバージョンが変更されたため、変更をコミットしてから、変更をプッシュ/マージすることはないと思います。
そのため、ローカルの git を削除すると、かなりの量の作業が失われますが、プライベート サーバー上の「新しい」バージョンと「再同期」できます...しかし、これは明らかに受け入れられません。元の位置に戻るためだけに、さらに 20 時間の作業を行う必要があります。とにかく新しいバージョンをプルダウンしても、変更を保持することはできますか?
注: 作成者/コミッターを変更する以外、彼はどのファイルにも変更を加えていません。また、注: 失われる可能性のある作業はすべて、まだローカル git にコミットされていません。
何か案は?...本当に助かりました。
よろしくお願いします、トム