6

Crashlytics バイナリが変更されているためにブランチのマージが失敗するという問題が発生しています。Crashlytics を gitignore に追加しましたが、ブランチをチェックアウトしてもフレームワークが表示されなくなりました。

マージの競合に対処する方法や、ファイルへの変更を無視してファイル自体を保持するように git に指示する方法はありますか?

4

1 に答える 1

1

新しいクローンのファイルが必要な場合、または 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、マージに使用する外部プログラムを指定します。この場合、プログラムはtrueunix のようなシステムで使用できるはずであり、何も正常に実行されません。 よりスマートなものが必要な場合は、実際のカスタム ロジックを追加する方法について、カスタム マージ ドライバーの定義に関するgitattributes マンページセクションを参照してください。たとえば、ファイルにバージョンインジケータがある場合、ファイルのより高いバージョンを常に保持するなど、非常に複雑なことを行うことができます。

git add.gitattributes ファイルをリポジトリに追加する必要があります。実際のマージ ドライバの定義は、新しいクローンがすぐに自動的に取得できるように保存することはできません。したがって、これを各クローンに手動で追加するか、必要なすべてのコンピューターのユーザーごとの構成に追加する必要があります。

于 2015-06-04T13:12:13.420 に答える