Як ігнорувати всі файли в папці зі сховищем Git у Sourcetree?


86

У мене є сховище Bitbucket Git, яким керує Sourcetree.

У мене є дві папки, які я хочу зафіксувати, але мені потрібно ігнорувати всі файли в цих папках, оскільки вони містять лише тимчасові файли.

Як я можу це зробити?

Відповіді:


54

Додайте це до .gitignore:

*
!.gitignore

13
Це слід додати всередині кожної папки, яку потрібно відстежувати. Існування самого файлу змусить git відстежувати папку (відстежуючи цей файл). Засіб *ігнорує всі файли, а !.gitignoreзасіб не ігнорує сам файл
Біллі Мун,

2
Як пояснив Біллі Мун, спасибі. Таким чином, ви можете створювати файли .gitignore у каталогах. Цей файл повідомляє Git, що ігнорувати, а що ні.
Герго Ердосі,

21
Як це зробити в SourceTree?
1,21 гігават

1
Для цього вам не потрібно SourceTree, .gitginoreце звичайний файл, просто створіть його в каталозі, вміст якого ви хочете проігнорувати.
Герго Ердосі

1
Як згадується @ AD7six нижче, не додайте! .Gitignore до файлу, оскільки це непотрібно.
Xcalibur

155

Для користувачів Sourcetree: Якщо ви хочете проігнорувати певну папку, просто виберіть файл із цієї папки, клацніть правою кнопкою миші та виконайте "Ігнорувати ...". У вас з’явиться спливаюче меню, де ви можете проігнорувати "Ігнорувати все, що внизу: <ВАША НЕОБХІДНА ПАПКА>"

Перше меню

Друге меню

Якщо у вас опція «Ігнорувати» неактивна, вам слід вибрати опцію «Зупинити відстеження». Після цього файл буде доданий до поетапних файлів зі знаком мінус на червоному піктограмі, а піктограма файлу в списку Нестадійні файли зміниться на знак питання на фіолетовому фоні. Тепер у списку Нестадійні файли опція «Ігнорувати» знову ввімкнена. Просто зробіть, як описано вище.


14
Якщо папка вже зафіксована, спочатку видаліть її, внесіть зміни, а потім виконайте наведені вище дії.
RMorrisey

16
У мене є опція "Ігнорувати" сірою. Хтось знає чому?
Андрій Карчевський

6
Ігнорування також для мене сіре.
Micah Zoltu

чи додає ігнорування до git ignore? якщо ні, чому ні?
Джо Ллойд,

1
@JoeLloyd так, це додає git ignore. Ви навіть можете зафіксувати створений / відредагований файл ігнорування git як будь-який інший файл.
Калзем

25

Клацніть правою кнопкою миші на файлі → ІгноруватиІгнорувати все, що знаходиться внизу .

Якщо параметр Ігнорувати неактивний, тоді:

  1. Спочатку налаштуйте файл
  2. Клацніть правою кнопкою миші → Зупинити відстеження
  3. Цей файл з’явиться на панелі нижче зі знаком питання → Клацніть правою кнопкою миші → Ігнорувати

Введіть тут опис зображення


7

Наскільки мені відомо, Git не відстежує папки, а лише файли - тому порожні папки (або папки, де всі файли ігноруються) не можуть бути зафіксовані. Якщо вам, наприклад, потрібно, щоб папка була присутня через якийсь крок у процесі збірки, можливо, ви можете замість цього створити її за допомогою інструмента збірки? Або ви можете помістити один порожній, неігнорований файл у папку та зафіксувати його.


1
Ви маєте на увазі, що якщо я хочу відстежити папку, я повинен додати "фіктивний" файл і проігнорувати решту? : - /
rubdottocom 12.03.12

2
@rubdottocom: Я так вважаю; папки існують у git лише завдяки файлам, які в них знаходяться. Чому вам потрібно контролювати версію порожньої папки?
Аасмунд Ельдгусет

2
Існує багато причин для відстеження порожніх папок. Ви можете захотіти, щоб на касі була папка, готова для використання людьми, без необхідності створювати їх окремо. Ваш код може залежати від існування певної папки, наприклад, папки, яка очікує завантаження, а якщо папка не існує, вона не зможе завантажити туди файли тощо ...
Біллі Мун

З причини, яку пояснив @AasmundEldhuset, відповідь Герго має правильне рішення.
Біллі Мун

@BillyMoon: Я згоден, що можуть бути причини; Мені було цікаво, якими були його конкретні потреби, щоб ми могли запропонувати найбільш підходяще рішення. :-) Фокус Герго був акуратним, хоча зводиться до додавання (більш-менш) фіктивного файлу до папки, як я запропонував. Однак його рішення було більш хитромудрим, тому +1 йому.
Аасмунд Елдгусет,

5

Побивши це головою принаймні годину, я пропоную цю відповідь, щоб спробувати розширити коментарі, зроблені іншими. Щоб проігнорувати папку / каталог, зробіть наступне: якщо у вас немає файлу .gitignore у кореневій частині проекту (саме це ім’я ".gitignore"), створіть фіктивний текстовий файл у папці, яку потрібно виключити. Усередині Дерева джерел клацніть правою кнопкою миші та виберіть Ігнорувати. Ви отримаєте спливаюче вікно, яке виглядає так.

введіть тут опис зображення

Виберіть "Все, що внизу", і виберіть зі спадного списку папку, яку ви хочете проігнорувати. Це створить файл .gitignore у вашому кореневому каталозі та помістить у нього специфікацію папки.

Якщо у вас у вашій кореневій папці вже є папка .gitignore, ви можете скористатися тим самим підходом, наведеним вище, або просто відредагувати файл .gitignore та додати папку, яку ви хочете виключити. Це просто текстовий файл. Зауважте, що в іменах шляхів він використовує скісні риски, а не зворотні, як ми звикли користувачі Windows. Я спробував створити текстовий файл .gitignore вручну у Провіднику Windows, але це не дозволило мені створити файл без імені (тобто лише з розширенням).

Зверніть увагу, що додавання .gitignore та специфікації файлу не вплине на файли, які вже відстежуються. Якщо ви вже відстежуєте їх, вам доведеться припинити їх відстеження. (Клацніть правою кнопкою миші на папці або файлі та виберіть Зупинити відстеження.) Потім ви побачите, як вони змінюються із зеленого / чистого або бурштинового / зміненого значка на червоний / видалений значок. Під час наступного коміту файли буде видалено зі сховища, а потім з’являться з синім / ігнорованим значком. Інший співавтор запитав, чому Ignore було вимкнено для певних файлів, і я вважаю, що це тому, що він намагався ігнорувати файл, який вже відстежувався. Ви можете ігнорувати лише файл, який має синій значок знака запитання.


Щоб створити файл .gitignore у Widnows, використовуйте команду Git bash 'touch .gitignore'
Mikee

4

Як згадували інші: git не відстежує папки, а лише файли.

Ви можете переконатися, що папка існує за допомогою цих команд (або еквівалентної логіки):

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

Існування файлу означатиме, що у кожного, хто перевіряє сховище, буде папка.

Вміст файлу gitignore означатиме, що все, що в ньому ігнорується

Вам не потрібно не ігнорувати сам файл .gitignore . Це правило, яке не могло б служити жодній меті після вчинення.

АБО

якщо ви віддаєте перевагу зберігати всі свої ігноровані визначення в одному і тому ж місці, ви можете створити .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.


3

Якщо ваш варіант Ігнорувати неактивний, вам доведеться припинити відстеження файлу, перш ніж ви зможете його ігнорувати. Ви можете просто клацнути файл правою кнопкою миші та натиснути "Зупинити відстеження".

Біля нього повинен з’явитися синій значок. Клацніть правою кнопкою миші ще раз і натисніть ігнорувати.


2

Ігнорувати повну папку у дереві джерела.

   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 /



-2

У Sourcetree: Просто ігноруйте файл у вказаній папці. Sourcetree запитає, чи хочете ви ігнорувати всі файли в цій папці. Це прекрасно!


14
-1 Безглузда відповідь. Оскільки ви не пояснюєте, як робити ігнорування (у sourcetree)!
інженер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.