2

私のプロジェクトには xml ファイルがあります: mainWindow.ui. GUI用のQt Designerファイルです。すべてのアイコンとその他のリソースには、次のような行があります。

<iconset resource="../build/resources.qrc">

問題は、resources.qrc が設定済みのファイルであり、その場所が特定のユーザーのビルド ディレクトリに依存することです (これは、好みに応じてすべての人にとって異なる傾向があります。

<iconset resource="../../build/resources.qrc">

これは、毎回約 50 行を変更するため、mainWindow.ui を編集する開発者の間で腹立たしい戦いにつながります。これは、マージ要求が発生するたびに、このファイルの長くて退屈な手動マージを意味します。

mainWindow.ui も構成済みファイルにせずに、これらの行の変更を許可しないように git に指示したり、Qt Designer にその場所を修正するように指示したりできますか? どうすればこの状況を回避できますか?

4

1 に答える 1

1

.gitattributes設定を使用して、すべてのマージ競合が解決されることを指定できるファイルをセットアップできourます。

 mainWindow.ui merge=ours

これ mainWindow.uiにより、 がマージによって上書きされるのを防ぎます。競合する代わりに、これはファイルの現在の状態を受け入れることにより、暗黙のうちにマージを解決します。これは、開発者が設定を含む独自のブランチを持っている場合に適しています。マスターで直接作業する場合は、独自の設定をプッシュするため、あまり良くありません。

あるいは、おそらくあなたの場合はより良いでしょう、各開発者は git への変更を無視するように強制することができますmainWindow.ui:

git update-index --skip-worktree mainWindow.ui

これは非常に紛らわしいですが、Git はプッシュ時にファイルの変更を無視しますが、Git はプル時にローカル ファイルの変更を保存しようとし、リモートが更新された場合にのみ更新します。概要はこちらでご覧いただけます

于 2013-06-16T16:59:39.740 に答える