私は2つのリポジトリを持つgit setupを持っています。どちらも読み書きできます(通常は1つのコードですが、時にはもう一方のコードもあります)。私のワークフローは、通常、自分のローカルリポジトリで作業しています。変更をテストする準備ができたら、自分のプロジェクトを実際にビルドする他のリモートリポジトリにコミットをプッシュします。しかし、何らかの理由で私がローカルからリモートにプッシュすると、リモートリポジトリの変更は「反転」されます。つまり、リポジトリは更新されますが、変更の逆です(つまり、リモートリポジトリをプリプッシュ状態)をインデックスに登録する。例えばリモートgitリポジトリを押すと、古いツリーがインデックスに残る
、私はローカル// This is a comment that has been updated
を言うために更新され、その後、私のリモートレポにプッシュしたコメント// This is a comment
でファイルを持って、私は私のリモートレポで次のように得る言う:
remote_repo$ git diff --cached
-// This is a comment that has been updated
+// This is a comment
明らかに私はgit reset --hard
を実行することでそれらを同じ状態にすることができますが、これを行う方法やそれを自動化する方法はありますか?私はほとんどの人がgit reset --hard
を実行するポスト受信フックを追加することをお勧めしますが、これはきれいな方法で設定できることを期待しています。
サイドノート:この時点でのインデックスの内容は、プッシュ前のインデックス*にあったものです。これは問題の原因です:以前は 'HEAD'コミットだったインデックスと一致しますが、' HEAD'自体は何らかの方法で変更されましたが、今度は別の新しいコミットに解決します。ハードリセット(混合リセットで十分)は必要ありませんが、一般的にこれは少しのトラップです。 – torek
Doh、それは振り返ってみると分かります。私はそれが厄介なワークフローだと気づいていますが、私は両方のリポジトリを所有しており、どちらも他の人がアクセスしていないので、危険は本当に不便です。 – DIMMSum