Как сохранить git от отслеживания всех файлов, заканчивающихся символом "~"?

Я использую Gedit, и каждый раз, когда я сохраняю файл, Gedit создает его копию, а имя копии всегда заканчивается символом ~. Проблема в том, что Git всегда пытается отслеживать эти файлы, и я не хочу этого! Есть ли способ по-прежнему использовать git add ., но добавлять только те файлы, которые не заканчиваются на ~?

Ответ 1

Вы хотите файл gitignore.

Если вы хотите уничтожить все, что заканчивается тильдой (что должно быть безопасным, я не могу представить разумный случай использования, где это плохо), убедитесь, что следующая строка находится в вашем файле .gitignore вверху вашей иерархии папок репо:

*~

Если вы также хотите избавиться от этих файлов тильды, расположенных в локальной файловой системе, вы можете. Было бы лучше, если бы Gedit поставил свои резервные файлы где-то в другом месте. JEdit и VIm, эти два редактора, которые я использую больше всего, имеют такие настройки, и это намного чище, чтобы держать их где-то еще, чем загружать gitignore.

К сожалению, у Gedit нет такой опции. Лучшее, что он может сделать, это отключить резервные копии ~. Прежде чем вы начнете волноваться, худший случай заключается в том, что вы потеряли то, что было в файле непосредственно перед сохранением. Это не в худшем случае - почему вы получили это в репозитории git, правильно?

ПРИМЕЧАНИЕ. Если вы хотите локально хранить суффиксные файлы ~, сделайте это. .gitignore, который вы создали выше, не позволит вам случайно их разделить.

Вы можете отключить резервные копии суффиксов ~, как это

Чтобы Gedit не создавал эти резервные копии в будущем, откройте Gedit, откройте диалоговое окно "Настройки" ( "Правка" > "Настройки" ), выберите вкладку "Редактор", удалите флажок "Создать резервную копию файлов до сохранения", и нажмите "Закрыть". После этого Gedit больше не будет делать резервные копии с тильдами повсюду.

Ответ 2

gitignore - это путь. Просто добавьте *~ в .gitignore в корень вашего репо.

Ответ 3

Чтобы добавить к тому, что сказал @filmor, вы можете создать глобальный файл gitignore, чтобы все репозитории игнорировали файлы резервных копий:

git config --global core.excludesfile ~/.gitignore_global

Это скажет git посмотреть в пути $HOME для файла .gitignore_global, где вы можете поместить правило *~.

Ответ 4

Просто дополняю ответы:
Если у вас есть файлы тильды с расширением, например Sketchup, который создает файлы резервных копий, оканчивающиеся на "~.skp", то вам нужно добавить *~.skp в ваш файл .gitignore. Или измените skp на расширение используемого вами программного обеспечения. Или используйте *~.*, если вы уверены, что все файлы, заканчивающиеся тильдой со всеми расширениями, безопасно игнорировать.

Ответ 5

Зачем добавлять файл .gitignore, когда вы можете редактировать файл открытого текста .git/info/exclude. "При принятии решения о том, следует ли игнорировать путь, git обычно проверяет шаблоны gitignore из нескольких источников" https://www.kernel.org/pub/software/scm/git/docs/gitignore.html

Если вы добавите *~ в строку в файле .git/info/exclude в репозитории git. git будет игнорировать этот шаблон и все файлы, заканчивающиеся на тильды.