2012-02-02 3 views
1

Я новичок в git, и я использую окна для git (это большая боль), и теперь у меня проблемы с слиянием с файлом конфликта .class. как решить этот конфликт? Я не понимаю этого конфликта.git merge confict с .class file

+1

1. Прочтите учебник git, например http://gitimmersion.com/ 2. Добавьте * .class в файл .gitignore. Скомпилированные файлы не должны храниться в репозитории. –

+0

Да, я знаю об этом. Я забыл сначала проигнорировать его. и теперь это создает проблемы. как его переписать? – Fugogugo

+1

Возможный дубликат [Git: удалить файл из репозитория, не удаляя его из локальной файловой системы] (http://stackoverflow.com/questions/1143796/git-remove-a-file-from-the-repository-without- delete-it-from-the-local-filesy) – Cascabel

ответ

1

Я бы сказал, даже не беспокоиться о его разрешении. Просто примите слияние, считая, что файл класса является единственным конфликтом, используя git merge branch -Xtheirs

Это будет сливаться, как обычно, но принимать все изменения от ветки, из которой вы сливаетесь, без проверки конфликтов.

Альтернативно вы можете разрешить конфликт вручную, если вам станет лучше. С этого момента больше не будет конфликтов с .class-файлами, так как вы добавили запись в .gitignore.

+0

Не опасно ли выполнять эту команду? Что делать, если его слияние имеет изменения, которые действительно необходимо пересмотреть для конфликтов? – danyim

+0

Действительно, поэтому я упомянул только об этом, только если этот .class-файл является единственным конфликтом. – sciritai

+0

спасибо: D, он работает – Fugogugo

3

Предполагая, что вы используете Java, файлы .class только что сгенерированы машинным кодом из вашей компиляции. На самом деле это не исходный код, поэтому разрешение конфликтов здесь не требуется. Я бы просто перезаписал файлы .class в целевой ветке.

+0

Я не знаю, как для перезаписи. какая команда нужна? – Fugogugo

+1

'git checkout - theirs ' или 'git checkout --ours ' then 'git add '. –

2

Я бы не поместил файлы классов, созданные из ваших источников, в git вообще.

Вы все равно можете удалить его локально, а затем git rm <file>.

+0

Я забыл проигнорировать его. так что его сейчас .. – Fugogugo