2017-05-26 34 views
0

私のファイルを "git add"してから "git commit"することができました。それはうまくいった。私がリモートにプッシュしようとすると、Gitが最初に "git pull"してからもう一度やり直すことを示唆していたところでエラーが発生しました。だから私は "git pull"をやった。しかし、私はコンフリクトをたくさん得ましたが、いくつかのDLLファイルだけを取得しました。私たちがまだ行っていない.gitignoreにそれらを加えなければならないからだと思います。アセンブリDLLファイルとのGitの競合

この現在のプッシュを修正するにはどうすればよいですか?あなたが得たマージ競合を解決するために

答えて

0

は、あなたが地元のDLLファイルとリモートの1の間で選択する必要があります。

git checkout --ours -- path/of/file.dll  # This chooses the local file 
git checkout --theirs -- path/of/file.dll # This chooses the remote file 

次に、あなたは

git add path/of/file.dll 

で紛争解決をマークしており、通常のようにマージを完了してください(git commit完了したら

)DLLファイルを無視する場合は、これをお勧めします。すでにgitのことで、その追跡されているので.gitignoreファイル、しかし、あなたは

git rm --cached path/of/file.dll 
0

Gitチェックアウトすることで、これを元に戻す必要があり、このようなケースのために--oursまたは--theirsオプションを受け入れます。ですから、マージ競合を持っている、とあなたはちょうどあなたがマージされているブランチからファイルをしたい知っていれば、あなたが行うことができます:

$ gitのチェックアウト--theirs - パス/に/競合-file.txtを

そのバージョンのファイルを使用するには

パス/に/競合-file.txtを

もっと答えhere

- あなたがあなたのバージョン(でマージされていないもの)をしたい知っていれば同様に、あなたは

$ gitのチェックアウト--oursを使用することができます

0

gitでバイナリファイルをマージすることは水を保持しません。 DLLがプロジェクトのコードから生成された場合:

1 - バイナリは、git ...のままにしてはいけませんが、役に立つとわかっている場合は、DLLが生成されていることを確認してくださいDLLがリビジョンのソースファイルとマッチするように、新しいリビジョンごとに(ただし、それは別のトピックです)。

2 - マージの結果であったソースコードからDLLを生成して(ソースファイルのすべての競合をすでに解決している)、それをすべてコミットしてください。

関連する問題