2016-12-28 10 views
0

私はプロジェクトに取り組んでおり、gitリポジトリの変更をマージしたいと思っていました。未追跡の作業ツリーをマージすることができません

リモートレポは、いくつかのビルドファイルを無視していないですが、私はそれらが(別のビルドシステムで構築されたファイルは明らかに異なってしまうので)私のgitignoreにファイルを構築追加されました。

だから私はと合併しようとすると:

git merge -X ours ns3-mmwave-ext/master 

私はそれらのビルドファイルをマージで上書きされるだろうというエラーを取得します。

私は彼らが上書きされたくないので、私はこの答え https://stackoverflow.com/a/26639255/4126652

を踏襲し、実行しようとしました:

git add -f * // Without -f git is complaining because those build files are in my gitignore 
git stash 
git merge -X ours ns3-mmwave-ext/master 

しかし、それはまだ同じ人跡未踏作業ツリーのファイルと同じエラーが表示されますマージによって上書きされます。 NS3-ミリ波-extがリモートで、既にフェッチされたことを

注意。

編集:

私はobbiouslyビルドファイルをきれいにすることができますが、ビルドプロセスは非常に長く、私はいくつかのマイナーな変更のために全体を再構築する必要はありません。

編集2:

私はリモートでビルドファイルを削除することはできませんので、私はリモートレポに貢献していないです。

+0

私の一般的なアドバイスは、Gitリポジトリにビルドファイルを追加しないことです。ソースファイルや他の関連するビルド済みのものだけが本当にそこに属しています。 –

+0

@TimBiegeleisen私は知っているが、それは私のプロジェクトではなく、私は貢献者ではなく、それらの人たちはビルドファイルを無視していない。 –

+0

これらのバージョン管理されたリモートビルドファイルは、実際にプログラムを起動するために使用されていますか、それとも単なる成果物ですか? –

答えて

0

私suggessionは、他のローカルtmpのブランチにごbuildフォルダをコミットすることになります。次にresetlocal/masterns3-mmwave-ext/masterを入力してから引き出します。

# First remove 'builds' folder from .gitignore 

$ git checkout tmp 
$ git commit -am 'builds folder commmit' 

$ git checkout master 
$ git fetch 
$ git reset --hard ns3-mmwave-ext/master 
$ git pull origin ns3-mmwave-ext/master 

$ git checkout tmp 
$ git rebase master     # now your 'builds folder commit' will be kept in top here 
関連する問題