У мене є сховище з файлом, Hello.java
. Коли я компілюю його, Hello.class
генерується додатковий файл.
Я створив запис Hello.class
у .gitignore
файлі. Однак файл все ще видається відстеженим.
Як я можу змусити ігнорувати Git Hello.class
?
У мене є сховище з файлом, Hello.java
. Коли я компілюю його, Hello.class
генерується додатковий файл.
Я створив запис Hello.class
у .gitignore
файлі. Однак файл все ще видається відстеженим.
Як я можу змусити ігнорувати Git Hello.class
?
Відповіді:
Проблема полягає в тому, що .gitignore
ігнорується лише файли, які раніше не відслідковувалися (від git add
). Запустіть, git reset name_of_file
щоб видалити файл і зберегти його. Якщо ви хочете також видалити даний файл із сховища (після натискання), використовуйте git rm --cached name_of_file
.
git rm --cached name_of_file
видалить файл із вашого git repo. Навіть якщо ви додасте його у свій .gitignore файл. Це не ігнорування того, що видалення.
git reset name_of_file
видаляє стеження та не видаляє файл.
Як ігнорувати нові файли
В усьому світі
Додайте до свого файлу шлях (и), який ви хочете проігнорувати у своєму .gitignore
файлі (і скопіюйте їх). Ці записи файлів також стосуватимуться інших, хто перевіряє сховище.
Місцево
Додайте до свого файлу шлях (і), який ви хочете проігнорувати у своєму .git/info/exclude
файлі. Ці записи файлів стосуються лише вашої місцевої робочої копії.
Як ігнорувати змінені файли (тимчасово)
Для того, щоб ігнорувати змінені файли до списку як модифіковані, ви можете використовувати таку команду git:
git update-index --assume-unchanged <file>
Щоб повернути це незнання, використовуйте таку команду:
git update-index --no-assume-unchanged <file>
local
git, ігноруючи, і перезапустив мою систему, вона все ще показує роботу безпосередньо в чистоті.
update-index
трюк, абсолютно ідеальний, щоб уникнути зміни .gitignore
файлу, який потім відстежується Git!
Додайте наступний рядок до .gitignore:
/Hello.class
Це виключить Hello.class з git. Якщо ви вже зробили це, виконайте таку команду:
git rm Hello.class
Якщо ви хочете виключити всі файли класу з git, додайте наступний рядок до .gitignore:
*.class
Hello.class
до .gitignore
ігнорує будь-який файл, викликаний Hello.class
у будь-якому підкаталозі. Якщо ви маєте намір ігнорувати файл лише Hello.class
в тому самому каталозі, що і .gitignore
файл, скористайтеся /Hello.class
замість нього рядком.
.gitignore
файл?
.gitignore
будь-якому місці git-проекту - якщо шлях починається з /
, це буде відносно розташування .gitignore
файлу; в іншому випадку він буде рекурсивно посилатися на файли в поточному каталозі та його нащадках.
1) Створіть .gitignore
файл. Для цього потрібно просто створити .txt
файл і змінити розширення так:
Потім потрібно змінити ім'я, записавши наступний рядок у вікно cmd:
rename git.txt .gitignore
Де git.txt
назва файлу, який ви тільки що створили.
Тоді ви можете відкрити файл і записати всі файли, які ви не хочете додати у сховище. Наприклад, моя виглядає так:
#OS junk files
[Tt]humbs.db
*.DS_Store
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.pyc
*.xml
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*
#Project files
[Bb]uild/
#Subversion files
.svn
# Office Temp Files
~$*
Після цього вам потрібно додати його до вашого сховища Git. Ви повинні зберегти файл, де знаходиться ваше сховище.
Тоді в Git Bash потрібно написати наступний рядок:
git config --global core.excludesfile ~/.gitignore_global
Якщо сховище вже існує, вам потрібно зробити наступне:
git rm -r --cached .
git add .
git commit -m ".gitignore is now working"
Якщо крок 2 не працює, слід записати весь маршрут файлів, які ви хочете додати.
Ігнорувати:
git update-index --assume-unchanged <path/to/file>
Щоб скасувати ігнорування:
git update-index --no-assume-unchanged <path/to/file>
lstat(2)
витрат, він залишає за собою право повідомити, що шлях був змінений (… git commit -a
вільний здійснити цю зміну).
Ви можете використовувати методи нижче, щоб ігнорувати / не ігнорувати зміни в відстежуваних файлах.
git update-index --assume-unchanged <file>
git update-index --no-assume-unchanged <file>
lstat(2)
витрат, він залишає за собою право повідомити, що шлях був змінений (… git commit -a
вільний здійснити цю зміну).
Створіть .gitignore
у каталозі, де знаходиться .git. Ви можете перелічити в ньому файли, розділені новим рядком. Ви також можете використовувати підстановку:
*.o
.*.swp
.gitignore
файлах специфічних шаблонів (тобто тимчасових файлів Vim) (якщо цей інструмент не передбачений проектом). Ви можете розмістити шаблони для ваших улюблених інструментів у файлі (наборі core.excludesFile
) для кожного користувача; вони працюватимуть у всіх ваших сховищах. Наприклад git config --global core.excludesFile "$HOME/.git-user-excludes"
, потім помістіть їх у цей файл.
З офіційного сайту GitHub:
Якщо у вас вже зареєстрований файл, і ви хочете його проігнорувати, Git не буде ігнорувати файл, якщо ви додасте правило пізніше. У цих випадках потрібно спочатку зняти файл, виконавши таку команду у своєму терміналі:
git rm --cached FILENAME
або
git rm --cached .
Вам слід написати щось подібне
*.class
у ваш .gitignore
файл.
*.class
до свого .gitignore
git, щоб ігнорувати всі файли, що закінчуються на .class
.
Створюючи файл .gitignore. Детальніше дивіться тут: Git Book - Ігнорування файлів
Також перевірте це: Як зробити так, щоб Git ігнорував файли, не використовуючи .gitignore?
Якщо ви вже зробили файл і ви намагаєтесь проігнорувати його, додавши до нього .gitignore
, Git не буде ігнорувати його. Для цього спочатку потрібно зробити наступні речі:
git rm --cached FILENAME
Якщо ви починаєте проект щойно і хочете додати деякі файли до ігнорування Git, виконайте наведені нижче дії, щоб створити файл ігнорування Git:
.gitignore
файл.Ви також можете використовувати .gitattributes (замість .gitignore), щоб виключити цілі файли. Файл досить зрозумілий, але я вставлю його тут для довідок. Зверніть увагу на останній рядок (* .class binary):
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.ico binary
*.mo binary
*.pdf binary
*.phar binary
*.class binary
Додайте наступний рядок до .git / info / виключити:
Hello.class
.git
?
У мене була схожа проблема з файлом "dump.rdb".
Я намагався додати цей файл різними способами .gitignore файл, але працював лише один спосіб.
Додайте своє ім’я файлу в кінці файлу .gitignore
ПРИМІТКА. Додавання файлу в іншому місці не працювало.
Наприклад, див .: https://gitlab.com/gitlab-org/gitlab-ce/raw/b3ad3f202478dd88a3cfe4461703bc3df1019f90/.gitignore
Ця веб-сторінка може бути корисною та економією часу при роботі .gitignore
.
Він автоматично генерує .gitignore файли для різних IDE та операційних систем із певними файлами / папками, які зазвичай не хочеться перетягувати у ваше сховище Git (наприклад, специфічні папки та конфігураційні файли для IDE).
Я спробував це -
git status
.idea/xyz.xml
.idea/pqr.iml
Output
.DS_Store
echo "
.idea/xyz.xml
.idea/pqr.iml
Output
.DS_Store" >> .gitignore
git status
.gitignore
так само ми можемо додати каталог та всі його підручні файли / файли, які ми хочемо ігнорувати у статусі git, використовуючи directoryname/*
цю команду, і я виконав цю команду з src
каталогу.
git rm -r --cached .
git add .
Я спробував --assume-unchanged
і також, .gitignore
але не працював добре. Вони ускладнюють перемикання гілок і важко об'єднувати зміни з іншими. Це моє рішення:
Коли я здійснюю , я вручну видаляю файли зі списку змін
Перед тим, як тягнути , я ховаю змінені файли. А після тяги я роблю приховану попсу .
Крок 3 іноді спровокує злиття і може призвести до конфлікту, який потрібно вирішити, що добре.
Це дозволяє мені зберігати локальні зміни, які не поділяються з іншими в колективі.