GIT: При проверке альтернативной ветки я хочу очистить игнорируемые файлы - PullRequest
1 голос
/ 20 января 2011

Предположим, у меня есть структура в мастере.

d - src 
      - main ...
      - resources ...
  - target
      - xyz

Файлы xyz не должны отслеживаться, поэтому я добавил в цель .gitignore / * и зафиксируйте структуру

  • git commit -m 'исходная структура'

Я создаю 2 ветви

  • git branch t1
  • git branch t2

и переключиться на t1

  • git checkout t1

Я начинаю делать какую-то работу, компилировать вещи, чтобы цель была заполнена. Я фиксирую свои изменения в t1.

  • git commit -a 't1 определенные изменения'

затем я переключаюсь на t2

  • git checkout t2

Когда я смотрю на цель, она все еще заполнена созданными файлами когда ветка t1 была активна, в то время как я хотел бы, чтобы эти 'вычистили'

Я обнаружил похожую дискуссию о том, что git должен вести себя иначе, чем я вижу. Git удаляет проигнорированный файл, когда я переключаю ветки

Чего мне не хватает?

Фрэнсис

Ответы [ 3 ]

2 голосов
/ 20 января 2011

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

git clean -xdf

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

git clean -df

Это оставило бы мои выходные каталоги как есть. Вместо этого я бы положился на свои инструменты разработки для очистки этих папок.

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

0 голосов
/ 20 января 2011

Вопрос, который вы связали, говорит о файле, который отслеживается в одной ветви и игнорируется в другой.Вы говорите о сгенерированных файлах, которые не отслеживаются ни в одной ветке.Поскольку git не отслеживает их, они ничего с ними не сделают.

0 голосов
/ 20 января 2011

Вы можете добавить post-checkout хук, который очищает игнорируемые файлы:

git clean -f -X
...