私はgitの問題を抱えています。答えはstackoverflowのどこかにあるはずですが、見つかりません。
sass やその他のビルド ファイルを使用するプロジェクトに取り組んでいるチームを想像してみてください。複数の開発者がファイルをビルドし、非開発者が最初にビルドする必要なくプロジェクトを複製してチェックアウトしたい場合に備えて、ビルドされたファイルをバージョン管理する必要があります。
ただし、ビルドされたファイルをプロジェクトに含めると、常にマージの競合が発生します。
ローカルの変更を無視して、主任開発者だけが時々バージョンをチェックインできるようにすることができます。
無視は、ユーザー定義の .gitignore ファイルまたは次の方法で実行できます。
$ git update-index --assume-unchanged path-to-file.css
しかし、これは引っ張るときに問題を引き起こします。
$ git pull
remote: Counting objects: 30, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 16 (delta 11), reused 16 (delta 11)
Unpacking objects: 100% (16/16), done.
From github.com:User/MyProject
4e1s389..a231344 development -> origin/master
Updating 63sdf04..a231344
error: Your local changes to 'path-to-file.css' would be overwritten by merge.
Aborting.
Please, commit your changes or stash them before you can merge.
回避策は、たとえばエイリアスを使用して、ファイルを常にチェックアウトすることです。
git config --global alias.cobuilded 'checkout path-to-file.css'
そして、いくつかの作業と構築の後:
git cobuilded
git commit -am "work done"
git pull
git push
しかし、この問題にはもっと簡単な解決策があるはずですよね?
git ignore-this-file-and-always-merge-theirs-from-origin path-to-file.css
私はすでにこの質問と、常にそれらをマージするための可能な解決策を見つけました。しかし、私の場合、マージ前のプルはすでに失敗しています...