Crashlytics バイナリが変更されているためにブランチのマージが失敗するという問題が発生しています。Crashlytics を gitignore に追加しましたが、ブランチをチェックアウトしてもフレームワークが表示されなくなりました。
マージの競合に対処する方法や、ファイルへの変更を無視してファイル自体を保持するように git に指示する方法はありますか?
Crashlytics バイナリが変更されているためにブランチのマージが失敗するという問題が発生しています。Crashlytics を gitignore に追加しましたが、ブランチをチェックアウトしてもフレームワークが表示されなくなりました。
マージの競合に対処する方法や、ファイルへの変更を無視してファイル自体を保持するように git に指示する方法はありますか?
新しいクローンのファイルが必要な場合、または git リポジトリを消去した後、git で追跡する必要があります。
バイナリ ファイルはマージするのに適していません。あなたの質問から、マージするものは何もないように思えますが、決定は保持するファイルだけです。できることの 1 つは、.gitattributes および .git/config 設定を使用して、これらのバイナリのカスタム自動マージ動作を定義することです。
以下を .gitattributes に追加します (または、そのコンテンツを含む新しいファイルを git リポジトリのルートに作成します)。
path/to/file merge=nomerge
以下を git 構成ファイル (.git/config、または ~/.gitconfig) に配置します。
[merge "nomerge"]
name = keep current version
driver = true
これは、競合を無視し、マージ先のブランチからファイルを保持するように git に指示します。はdriver = true
、マージに使用する外部プログラムを指定します。この場合、プログラムはtrue
unix のようなシステムで使用できるはずであり、何も正常に実行されません。 よりスマートなものが必要な場合は、実際のカスタム ロジックを追加する方法について、カスタム マージ ドライバーの定義に関するgitattributes マンページセクションを参照してください。たとえば、ファイルにバージョンインジケータがある場合、ファイルのより高いバージョンを常に保持するなど、非常に複雑なことを行うことができます。
git add
.gitattributes ファイルをリポジトリに追加する必要があります。実際のマージ ドライバの定義は、新しいクローンがすぐに自動的に取得できるように保存することはできません。したがって、これを各クローンに手動で追加するか、必要なすべてのコンピューターのユーザーごとの構成に追加する必要があります。