Я впервые работаю над git. Я разместил свою ветку на github, и она поместила всю библиотеку и документы в github. Что я могу сделать и как использовать команду gitignore, чтобы снова избежать той же ошибки.
.gitignore- это файл в корневом каталоге git. Добавьте шаблоны имен для файлов, которые вы хотите игнорировать, и файлы будут проигнорированы автоматически.
LonelyWebCrawler,
Я на убунту. Не могли бы вы назвать путь к корневому каталогу git
user1559230
2
Это каталог, в котором вы использовали git init. .gitКаталог находится там.
LonelyWebCrawler,
2
Для тех, кто не знает, как использовать gitignore - перейдите на gitignore.io, вы можете ввести все инструменты, которые вы используете (symfony, CakePHP, ZendFramework, wordpress, grunt, возвышенный текст, netbeans и т. Д., Вы получите упражнение ...), и он сгенерирует для вас файл игнорирования git. Если вы не знаете, как использовать gitignore, я думаю, что лучший способ изучить его - это посмотреть на хороший пример использования (например, тот, который сгенерирован gitignore.io. Если вы хотите использовать его из строки cmd (забавный способ ) посмотреть Tutorial: vimeo.com/70609819
DevWL
Ответы:
163
Итак, исходя из того, что вы сказали, эти файлы представляют собой библиотеки / документацию, которые вы не хотите удалять, но также не хотите нажимать github. Пусть у вас есть свой проект в папку your_projectи папку Doc: your_project/doc.
Удалите его из каталога проекта (без фактического удаления):
git rm --cached doc/*
Если вы не уже есть .gitignore, вы можете сделать один правильный внутри папки проекта: project/.gitignore.
Вставьте doc/*.gitignore
Подготовьте файл к фиксации: git add project/.gitignore
Подскажите, пожалуйста, как написать файл .gitignore. т.е. как записать путь к папкам и файлам, которые я хочу игнорировать, внутри файла .gitignore. Спасибо
user1559230
Спасибо за Ваш ответ. Перед фиксацией мне пришлось запустить git add -A
user1559230
4
Привет, gitignore - это просто текстовый файл. На самом деле это .gitignore (DOTgitignore). Просто введите имена файлов / типов файлов, которые git должен игнорировать, по одному в каждой строке. Пример: sujee.net/tech/articles/gitignore
touchФайл сначала не нужен . >>является синонимом >того, что файл еще не существует. echoдобавляет новую строку в конец вывода. Вы можете остановить это с помощью -n. Если вам нужны различные игнорирования, либо делать различные эхо - сигналы, или использовать -e, следующим образом : echo -e "**/cache/\n**.pyc" >> .gitignore. Двойная звездочка также соответствует всем файлам, которые копаются в папках рекурсивно. /На всякий случай используйте в конце папок.
mazunki
1
@Andrew tl; dr: Добавить каждый игнорируемый файл с помощью echo "file_to_be_ignored" >> .gitignore, больше ничего делать не нужно. Заканчивайте имена папок символами /as echo "**/modules/" >> .gitignore.
мазунки
Почему мой комментарий был удален
Андрей
12
git ignore - это соглашение в git. Установка файла по имени .gitignore
будет игнорировать файлы в этом каталоге и более глубоких каталогах, которые соответствуют шаблонам, содержащимся в файле. Чаще всего используется только один такой файл на верхнем уровне. Но вы можете добавить других в структуру каталогов глубже, чтобы игнорировать еще больше шаблонов или перестать игнорировать их для этого каталога, а затем и для более глубоких.
Точно так же вы можете «отменить игнорирование» определенных файлов в более глубокой структуре или в определенном подмножестве (т. Е. Игнорировать * .log, но все равно хотите отслеживать important.log), указав шаблоны, начинающиеся с !. например:
*.log !important.log
игнорирует все файлы журналов, но отслеживает файлы с именами important.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пока не закончите. Ваша история будет чистой. Обязательно сообщите своим коллегам, что вам придется принудительно нажимать, а им придется перебазировать то, что они еще не отправляли.
В корневом каталоге git есть файл с именем .gitignore. Это файл, а не команда. Вам просто нужно вставить имена файлов, которые вы хотите игнорировать, и они будут автоматически проигнорированы. Например, если вы хотите игнорировать все файлы автосохранения emacs, которые заканчиваются на ~, вы можете добавить эту строку:
Примечание. То, что я назвал корневым каталогом git, - это просто каталог, который вы использовали git initвпервые. Здесь же вы можете найти .gitкаталог.
когда я поместил файл .gitignore в папку своего проекта, он испортил мой проект eclipse локально. знаете ли вы, почему это могло произойти и как этого избежать? пока я просто держусь подальше от .gitignore.
.gitignore
- это файл в корневом каталоге git. Добавьте шаблоны имен для файлов, которые вы хотите игнорировать, и файлы будут проигнорированы автоматически.git init
..git
Каталог находится там.Ответы:
Итак, исходя из того, что вы сказали, эти файлы представляют собой библиотеки / документацию, которые вы не хотите удалять, но также не хотите нажимать
github
. Пусть у вас есть свой проект в папкуyour_project
и папку Doc:your_project/doc
.git rm --cached doc/*
.gitignore
, вы можете сделать один правильный внутри папки проекта:project/.gitignore
.doc/*
.gitignoregit add project/.gitignore
git commit -m "message"
.github
.источник
Если у вас нет файла .gitignore, сначала используйте:
затем эта команда для добавления строк в ваш файл gitignore:
источник
touch
Файл сначала не нужен .>>
является синонимом>
того, что файл еще не существует.echo
добавляет новую строку в конец вывода. Вы можете остановить это с помощью-n
. Если вам нужны различные игнорирования, либо делать различные эхо - сигналы, или использовать-e
, следующим образом :echo -e "**/cache/\n**.pyc" >> .gitignore
. Двойная звездочка также соответствует всем файлам, которые копаются в папках рекурсивно./
На всякий случай используйте в конце папок.echo "file_to_be_ignored" >> .gitignore
, больше ничего делать не нужно. Заканчивайте имена папок символами/
asecho "**/modules/" >> .gitignore
.git ignore - это соглашение в git. Установка файла по имени
.gitignore
будет игнорировать файлы в этом каталоге и более глубоких каталогах, которые соответствуют шаблонам, содержащимся в файле. Чаще всего используется только один такой файл на верхнем уровне. Но вы можете добавить других в структуру каталогов глубже, чтобы игнорировать еще больше шаблонов или перестать игнорировать их для этого каталога, а затем и для более глубоких.Точно так же вы можете «отменить игнорирование» определенных файлов в более глубокой структуре или в определенном подмножестве (т. Е. Игнорировать * .log, но все равно хотите отслеживать important.log), указав шаблоны, начинающиеся с
!
. например:игнорирует все файлы журналов, но отслеживает файлы с именами important.log
Если вы отслеживаете файлы, которые хотели игнорировать, удалите их, добавьте шаблон в файл .gitignore и добавьте все изменения.
с этого момента они не будут отслеживаться в вашем репозитории.
Если вы хотите очистить свою историю, вы можете
затем пометьте каждую фиксацию с помощью
e
илиedit
. Сохраните план. Теперь git воспроизведет вашу историю, останавливаясь при каждой фиксации, отмеченной e. Здесь вы удаляете ненужные файлы,git add -A
а затемgit rebase --continue
пока не закончите. Ваша история будет чистой. Обязательно сообщите своим коллегам, что вам придется принудительно нажимать, а им придется перебазировать то, что они еще не отправляли.источник
В корневом каталоге git есть файл с именем
.gitignore
. Это файл, а не команда. Вам просто нужно вставить имена файлов, которые вы хотите игнорировать, и они будут автоматически проигнорированы. Например, если вы хотите игнорировать все файлы автосохранения emacs, которые заканчиваются на~
, вы можете добавить эту строку:Если вы хотите удалить ненужные файлы из своей ветки, вы можете использовать
git add -A
, который « удаляет файлы, которых больше нет в рабочем дереве ».Примечание. То, что я назвал корневым каталогом git, - это просто каталог, который вы использовали
git init
впервые. Здесь же вы можете найти.git
каталог.источник
Если у вас нет файла .gitignore. Вы можете создать новый
И вы можете исключить папку, введя следующую команду в файле .gitignore
поместите этот файл в свой репозиторий git, чтобы, когда новый человек клонирует ваш проект, ему не нужно было снова добавлять то же самое
источник
Есть несколько способов использовать gitignore git
именем readme.txt, просто нужно записать readme.txt в файл .gitignore.
игнорировать все файлы .txt, напишите * .txt.
папку с именем test. Тогда просто напишите в файл test /.
просто создайте файл .gitignore и напишите все, что вы хотите игнорировать, образец файла gitignore:
Вы можете найти больше в документации git gitignore
источник
на моем Mac я нашел этот файл
.gitignore_global
.. он был в моем домашнем каталоге скрыт, так что сделайте a,ls -altr
чтобы увидеть его.Я добавил файлы eclipse, которые хотел, чтобы git игнорировал. содержимое выглядит так:
источник