2012-02-02 20 views
0

私のgitプロジェクトを私のUディスクにクローンします。私は私のUディスクにあるプロジェクトのファイルa.txtを変更します。リモートgitプロジェクトへの私の "git push"が失敗する理由

次に、私のプロジェクトのルートディレクトリにあるUディスクのgit pushを実行します。それは成功を記録します。 私のoriginプロジェクトでは、変更されません。

ただし、originプロジェクトルートディレクトリで、git statusを実行すると、a.txtの変更が表示されます。 git --hard HEADを実行すると、私のUディスクの変更が表示されます。

どうしたの?どのようにそれを解決するには?

答えて

1

あなたの起源プロジェクトは裸のリポジトリですか?そうでない場合、現在チェックアウトされているブランチにプッシュすると、この種の動作につながる可能性があります。

解決策:現在、起点リポジトリでチェックアウトされているブランチにプッシュしないでください。可能であれば、裸のリポジトリを起点として使用してください。

+0

ありがとう!しかし、同じgit repositoty、同じ操作、なぜ私の協力者が問題を抱えていないのですか? – Gina

+0

これはあなたとあなたの協力者の設定を詳しく調べなければ答えられない質問です。設定に若干の違いがあるか、gitが別の振る舞いをしません。しかし、私はまだ裸のリポジトリを起点として使うことを提案しています。元の場所にあるマシンで作業できるリポジトリが必要な場合は、元のクローンを設定し、クローンされたリポジトリを更新するベア・オリジン・リポジトリにポスト受信フックを設定できます。 – flyx

+0

詳細な説明をありがとうございました!私は問題の根本を知っていた。私の場合、コードgit pullを実行するだけです。 – Gina

0

Git-pushは、ローカルリポジトリからリモートリポジトリへの変更をプッシュします。

変更したファイルを押す前に、変更したファイルをローカルリポジトリに忘れましたか?

+0

私はコミットしました。私は、チェンは遠隔のものにプッシュされていると思う。しかし、それは自動的に元のファイルに戻されている。 – Gina

関連する問題