1

現在の設定:

XcodeプロジェクトとgitリポジトリをホストするホームiMac。Xcodeを介して複製されたプロジェクトで家から離れて作業するためのMacBook。

iMacで行った変更を問題なくMacBookにプルすることができ、MacBookで行った変更を問題のあるiMacに送り返すことができます。

私は自分の編集を行い、File > Source Control > CommitそれはエラーとFile > Source Control > Pushファイルなしで機能します-問題ありません。

しかし、私のiMacでは編集にアクセスできません。Xcodeが起動するとすぐに、編集されたファイル(MacBookのファイル)の横に「M」が表示され、変更を元に戻すことができません。私ができる唯一のことは、編集されていないファイルをコミットして「元に戻す」ことです。

4

1 に答える 1

2

ベアでないリポジトリに対して「プッシュ」操作を実行しています。これは、Gitのドキュメントで特に推奨されていることです。

何が起こるかというと、プッシュ操作はバックグラウンドでリポジトリを更新しますが、作業ディレクトリは更新しません。そのため、Gitは、ラップトップで変更されたすべてのファイルを、iMacで元の状態に「変更」されたものとして認識します。iMacでコミットされていない作業がないことが絶対に確実なgit reset --hard master場合は、 (またはブランチ名が何であれ)を実行することでこれを修正できます。

より良い解決策は、iMacに別のリポジトリを作成することです。これは「ベア」リポジトリであり、共有グローバルリポジトリとして扱います。各作業ディレクトリは、グローバルリポジトリからのプルとグローバルリポジトリへのプッシュの両方を行い、この問題を回避します。

于 2012-10-11T22:11:26.800 に答える