Как игнорировать все файлы в папке с git-репозиторием в SourceTree? - PullRequest
81 голосов
/ 12 марта 2012

У меня есть репозиторий Bitbucket Git, управляемый с помощью SourceTree.

У меня есть 2 папки, которые я хочу зафиксировать, но мне нужно игнорировать все файлы в этих папках, поскольку они содержат только временные файлы.

Как я могу это сделать?

Ответы [ 9 ]

143 голосов
/ 13 апреля 2014

Для пользователей SourceTree: если вы хотите игнорировать определенную папку, просто выберите файл из этой папки, щелкните по нему правой кнопкой мыши и выполните «Игнорировать ...».У вас будет всплывающее меню, в котором вы можете игнорировать «Игнорировать все ниже:»

First menu

Second menu

Если у вас опция «Игнорировать» серого цветаВам нужно выбрать опцию «Stop Tracking».После этого файл будет добавлен в промежуточные файлы со значком минус на красном фоне, а значок файла в списке неустановленных файлов изменится на знак вопроса на фиолетовом фоне.Теперь в списке Unstaged файлов снова включена опция «Игнорировать».Просто сделайте, как описано выше.

55 голосов
/ 12 марта 2012

Добавьте это к .gitignore:

*
!.gitignore
20 голосов
/ 16 сентября 2015

Щелкните правой кнопкой мыши по файлу -> Игнорировать -> Игнорировать все ниже.
Если параметр Игнорировать недоступен, то:
1. сначала файл рабочей области
2. щелчок правой кнопкой мыши -> Остановить отслеживание
3этот файл появится на панели ниже со знаком вопроса -> щелкните по нему правой кнопкой мыши -> Игнорировать
enter image description here

7 голосов
/ 12 марта 2012

Насколько я знаю, Git не отслеживает папки, только файлы - поэтому пустые папки (или папки, где все файлы игнорируются) не могут быть зафиксированы. Если вы, например, нужна ли папка из-за какого-то шага в процессе сборки, возможно, вы можете вместо этого создать инструмент для сборки? Или вы можете поместить в папку один пустой, незарегистрированный файл и зафиксировать его.

5 голосов
/ 21 ноября 2015

После того, как я обдумал это хотя бы в течение часа, я предлагаю этот ответ, чтобы попытаться расширить комментарии, сделанные некоторыми другими. Чтобы игнорировать папку / каталог, сделайте следующее: если у вас нет файла .gitignore в корне вашего проекта (с таким названием «.gitignore»), создайте фиктивный текстовый файл в папке, которую вы хотите исключить. Внутри Source Tree, щелкните правой кнопкой мыши и выберите Ignore. Вы получите всплывающее окно, которое выглядит следующим образом.

enter image description here

Выберите «Все под» и в раскрывающемся списке выберите папку, которую вы хотите игнорировать. Это создаст файл .gitignore в вашем корневом каталоге и поместит в него спецификацию папки.

Если у вас уже есть папка .gitignore в корневой папке, вы можете воспользоваться тем же подходом, описанным выше, или вы можете просто отредактировать файл .gitignore и добавить папку, которую вы хотите исключить. Это просто текстовый файл. Обратите внимание, что он использует прямые косые черты в именах путей, а не обратные косые черты, как мы привыкли к пользователям Windows. Я попытался создать текстовый файл .gitignore вручную в проводнике Windows, но он не позволил мне создать файл без имени (т. Е. Только с расширением).

Обратите внимание, что добавление .gitignore и спецификации файла не повлияет на файлы, которые уже отслеживаются. Если вы уже отслеживаете их, вам придется прекратить их отслеживание. (Щелкните правой кнопкой мыши папку или файл и выберите «Остановить отслеживание».) Затем вы увидите, что они поменяют зеленый / чистый или желтый / измененный значок на красный / удаленный значок. При следующей фиксации файлы будут удалены из хранилища и после этого появятся с синим / игнорируемым значком. Другой участник спросил, почему Ignore был отключен для определенных файлов, и я полагаю, что это потому, что он пытался игнорировать файл, который уже отслеживался. Вы можете игнорировать только файл с синим значком вопросительного знака.

4 голосов
/ 12 марта 2012

Как уже упоминалось: git не отслеживает папки, только файлы.

Вы можете убедиться, что папка существует с этими командами (или эквивалентной логикой):

echo "*" > keepthisfolder/.gitignore
git add --force keepthisfolder/.gitignore
git commit -m "adding git ignore file to keepthisfolder"

Наличие файла будет означать, что любой, кто проверяет хранилище, будет иметь эту папку.

Содержимое файла gitignore будет означать, что что-то в нем игнорируется

Вы не не должны игнорировать сам файл .gitignore . Это правило, которое ни к чему не приведет, если оно будет совершено.

OR

если вы предпочитаете хранить все свои определения игнорирования в одном месте, вы можете создать .gitignore в корне вашего проекта с таким содержимым:

*.tmp # example, ignore all .tmp files in any folder
path/to/keepthisfolder
path/to/keepthatfolder

и убедиться, что папки существуют

touch path/to/keepthisfolder/anything
git add --force path/to/keepthisfolder/anything
git commit -m "ensure keepthisfolder exists when checked out"

«что угодно» может буквально быть чем угодно. Обычно используемые имена: .gitignore, .gitkeep, empty.

2 голосов
/ 14 марта 2016

Если опция Игнорировать отображается серым цветом, вам необходимо прекратить отслеживать файл, прежде чем его можно будет проигнорировать.Вы можете просто щелкнуть правой кнопкой мыши по файлу и нажать «Остановить отслеживание».

Рядом с ним должен появиться синий значок.Щелкните правой кнопкой мыши еще раз и нажмите игнорировать.

1 голос
/ 17 июля 2018

Игнорировать полную папку в дереве исходников.

   Just Open Repository >Repository setting > Edit git ignore File and 
   you can rite some thing like this :

 *.pdb 
*.bak 
*.dll
*.lib 
.gitignore
packages/ 
*/bin/
*/obj/ 

Для папки bin и obj просто напишите: * / bin / * / obj /

0 голосов
/ 22 апреля 2013

в SourceTree: просто игнорируйте файл в указанной папке, sourcetree спросит, хотите ли вы игнорировать все файлы в этой папке, это прекрасно!

...