2014-12-10 3 views
0

В соответствии с рекомендацией от этого вопроса: Ignore files that have already been committed to a Git repositoryПосле удаления .gitignore, git все еще дает ошибку?

Мы сделали следующее:

git rm -r --cached . 
git add . 
$ git commit -m".gitignore is now working" 
On branch master 
Your branch and 'origin/master' have diverged, 
and have 2 and 24 different commits each, respectively. 
    (use "git pull" to merge the remote branch into yours) 
git commit -m".gitignore now works" 
git pull 

git says: 
$ git pull 
error: The following untracked working tree files would be overwritten by merge: 
dir/.classpath 

Как мы заставим мерзавца игнорировать файл .classpath?

+0

Да, исправлено, извините! – Dov

ответ

1

Вы должны зафиксировать изменения перед вытягивать:

git rm -r --cached . 
git add . 
git commit -m 'Removed dir/.classpath' 
git pull 

В зависимости от восходящего потока фиксаций, это может привести к конфликту слияния. Если вы получили конфликт с изменением/удалением в dir/.classpath, вам нужно будет удалить его снова, прежде чем совершать слияние.

git rm -r dir/.classpath 
git commit # Commit the merge 

Edit: Так как вы уже совершили ваши изменения, все, что вам нужно сделать, это удалить неотслеживаемый каталог перед вытягивать. Вы можете захотеть, чтобы сделать резервную копию, если вам нужно содержимое каталога.

rm -rf dir/.classpath 
git pull 
+0

Извините, отредактировав вопрос, мы сделали фиксацию (см. Выше). – Dov

+0

@Dov Отредактировал мой ответ, чтобы включить удаление каталога –

+0

.classpath не является каталогом AFAIK, поэтому вам может понадобиться 'rm dir/.classpath' вместо' rm -rf dir/.classpath' –

Смежные вопросы