Як використовувати команду gitignore в git


119

Я працюю вперше над git. Я пересунув своє відділення на github, і воно висунуло всю бібліотеку та документи в github. Тепер, що я можу зробити і як можна використовувати команду gitignore, щоб знову уникнути тієї ж помилки.


1
.gitignore- це файл у вашому кореневому каталозі git. Додайте шаблони імен для файлів, які ви хочете ігнорувати, і файли будуть ігноруватися автоматично.
LonelyWebCrawler

Я на ubuntu. Скажіть, будь ласка, шлях кореневого каталогу git
user1559230

2
Це каталог, яким ви користувалися git init. .gitКаталог знаходиться там.
LonelyWebCrawler

2
Для тих, хто не знає, як використовувати gitignore - перейдіть на сайт gitignore.io, ви можете ввести всі інструменти, які ви використовуєте (symfony, CakePHP, ZendFramework, wordpress, grunt, піднесений текст, netbeans тощо), ви отримуєте дрилі ...), і він створить файл ігнорування git для вас. Якщо ви не знаєте, як використовувати gitignore, я вважаю, що найкращий спосіб дізнатися це - переглянути якийсь хороший приклад використання (наприклад, той, що генерується gitignore.io. Якщо ви хочете використовувати його з cmd-рядка (примхливий шлях ) дивіться цей підручник: vimeo.com/70609819
DevWL

Відповіді:


162

Отже, виходячи з того, що ви сказали, ці файли - це бібліотеки / документація, яку ви не хочете видаляти, але також не хочуть наштовхуватися github. Скажімо, у вас є проект у папціyour_project і папку Doc: your_project/doc.

  1. Видаліть його з каталогу проектів (фактично не видаляючи): git rm --cached doc/*
  2. Якщо ви ще не маєте .gitignore , ви можете зробити один правильний всередині папки проекту: project/.gitignore.
  3. Помістіть doc/*.gitignore
  4. Постановіть файл для здійснення: git add project/.gitignore
  5. Виконувати: git commit -m "message" .
  6. Натисніть на зміни github.

Скажіть, будь ласка, як написати файл .gitignore. тобто, як записати шлях до папок і файлів, які я хочу ігнорувати у файлі .gitignore. Дякую
користувач1559230

Дякую за вашу відповідь. Перед фіксацією мені довелося запустити git add -A
user1559230

4
Привіт, gitignore - це просто звичайний текстовий файл. Це насправді .gitignore (DOTgitignore). Просто введіть ім'я файлу / типів файлів, які ви хочете, щоб git ігнорував, по одному на рядок. Приклад: sujee.net/tech/articles/gitignore
u19964


42

Якщо у вас немає файлу .gitignore, спочатку скористайтеся:

touch .gitignore

тоді ця команда для додавання рядків у ваш файл gitignore:

echo 'application/cache' >> .gitignore

Будьте уважні до нових ліній


touchСпочатку у файлі не потрібно . >>є синонімом, >якщо файл вже не існує. echoдодає новий рядок на кінці виводу. Ви можете зупинити це за допомогою -n. Якщо вам потрібні різні ігнорування, або робити різні відлуння - сигнали, або використовувати -e, наступним чином : echo -e "**/cache/\n**.pyc" >> .gitignore. Подвійна зірочка також відповідає всім файлам, що копаються у папках, рекурсивно. Використовуйте /в кінці папок, про всяк випадок.
мазунки

1
@Andrew tl; dr: додайте кожен ігнорований файл за допомогою echo "file_to_be_ignored" >> .gitignore, нічого іншого робити не потрібно. Кінець імена папок з /а echo "**/modules/" >> .gitignore.
мазунки

Чому мій коментар видалено
Андрій

12

git ignore - це умова щодо git. Встановлення файлу на ім'я.gitignore , ігноруватимуться файли в цьому каталозі та більш глибокі каталоги, які відповідають шаблонам, які містить файл. Найбільш поширене використання - просто мати один подібний файл на верхньому рівні. Але ви можете додати інших, які знаходяться глибше у структурі каталогу, щоб ігнорувати ще більше шаблонів або перестати ігнорувати їх для цього каталогу та згодом більш глибокі.

Крім того, ви можете "знехтувати" певні файли в більш глибокій структурі або певному підмножині (тобто ви ігноруєте * .log, але хочете все-таки відстежувати pomemb.log), вказавши шаблони, починаючи з !. наприклад:

*.log !important.log

буде ігнорувати всі файли журналу, але буде відслідковувати файли з ім'ям важливий.log

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

# delete files that should be ignored, or untrack them with 
# git rm --cached <file list or pattern>

# stage all the changes git commit
git add -A 

відтепер ваше сховище не відстежуватиме їх.

Якщо ви хочете очистити свою історію, можете

# if you want to correct the last 10 commits
git rebase -i --preserve-merges HEAD~10 

потім позначте кожну комісію за допомогою eабо edit. Збережіть план. Тепер git буде відтворювати вашу історію, зупиняючись на кожній комісії, яку ви позначили e. Тут ви видаляєте файли, які ви не хочете, git add -Aа потім, git rebase --continueпоки не закінчите. Ваша історія буде чистою. Переконайтеся, що ви скажете колегам, як вам доведеться змусити натискати, і їм доведеться переробити те, чого вони ще не натискали.


8

У вашому кореневому каталозі git є файл .gitignore. Це файл, а не команда. Вам просто потрібно вставити імена файлів, які ви хочете ігнорувати, і вони автоматично будуть ігноруватися. Наприклад, якщо ви хочете ігнорувати всі файли автоматичного збереження emacs, які закінчуються ~, ви можете додати цей рядок:

*~

Якщо ви хочете видалити непотрібні файли зі своєї гілки, ви можете скористатися git add -A, що " вилучає файли, які вже не є у робочому дереві ".

Примітка. Те, що я назвав "кореневою каталогом git" - це просто каталог, в якому ви git initвперше користувалися. Тут також можна знайти .gitкаталог.


що станеться з уже натиснутими файлами, які я не хочу
user1559230

4

Якщо у вас немає файлу .gitignore. Ви можете створити новий

touch .gitignore

І ви можете виключити папку, ввівши нижче команду у файлі .gitignore

/folderName

натисніть цей файл у своє сховище git, щоб, коли нова людина клонує ваш проект, йому більше не потрібно буде додавати те саме


2

Існує кілька способів використання gitignore git

  • вказуючи конкретне ім'я файлу. наприклад, ігнорувати файл
    під назвою readme.txt, просто потрібно написати readme.txt у .gitignore файл.
  • Ви також можете написати ім'я розширення файлу. Наприклад, щоб
    ігнорувати всі .txt файли, запишіть * .txt.
  • Ви також можете проігнорувати цілу папку. наприклад, ви хочете ігнорувати
    папку з назвою test. Потім просто напишіть тест / у файл.

просто створіть .gitignore файл і напишіть все, що ви хочете ігнорувати, зразок файлу gitignore буде:

# NPM packages folder.
node_modules

# Build files
dist/

# lock files
yarn.lock
package-lock.json

# Logs
logs
*.log
npm-debug.log*

# node-waf configuration
.lock-wscript

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history

# Jest Coverage
coverage

.history/

Більш детальну інформацію ви можете знайти в документації git gitignore


1

на моєму комп'ютері я знайшов цей файл .gitignore_global .. він був у моєму домашньому каталозі прихований, тому зробіть його, ls -altrщоб побачити його.

Я додав файли затемнення, я хотів ігнорувати git. вміст виглядає приблизно так:

 *~
.DS_Store
.project
.settings
.classpath
.metadata

коли я помістив файл .gitignore в папку свого проекту, він зіпсував мій проект затемнення локально. чи знаєте ви, чому це могло статися і як це запобігти ?? поки що я просто тримаюся подалі від .gitignore.
JesseBoyd

Я більше не використовую затемнення. Inteilji зараз
j2emanue
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.