Git добавить все файлы, измененные, удаленные и неотслеживаемые?

Есть ли способ добавить все файлы независимо от того, что вы с ними делаете, будь то удаление, отсутствие отслеживания и т. д.? как для фиксации. Я просто не хочу git add или git rm все мои файлы каждый раз, когда я делаю коммит, особенно когда я работаю над большим продуктом.


person INSANENEIVIESIS    schedule 16.08.2010    source источник
comment
См.: Разница между "git add -A" и "git add".   -  person mahalie    schedule 07.06.2011


Ответы (10)


Пытаться:

git add -A

Внимание! Начиная с git 2.0 (середина 2013 года) это всегда размещает промежуточные файлы во всем рабочем дереве.
Если вы хотите stage-файлы по текущему пути вашего рабочего дерева, вам необходимо использовать:

git add -A .

Также см.: Разница между git add -A и git add .

person Kilanash    schedule 16.08.2010
comment
это не сработало для меня... как я могу показать свой терминал ввода-вывода в этом обсуждении? скопировать и вставить вывод моего терминала в качестве ответа на это обсуждение? - person Rakib; 11.10.2011
comment
вот проблема, с которой я столкнулся - stackoverflow.com/q/7726131/636762 - пожалуйста, помогите мне в этом, пожалуйста - person Rakib; 11.10.2011
comment
Это также может не работать, если ваша версия git устарела. Я запускал скрипт на сервере с git 1.5.2.5. git add -A не работал. Из скрипта сообщения об ошибке не поступало. Только из командной строки я обнаружил, что -A нельзя добавлять. - person Eponymous; 16.01.2012
comment
но почему я должен добавлять файлы каждый раз, когда хочу сделать коммит!? Каждый раз, когда я вносил изменения в файлы, мне нужно их добавить. - person Frade; 07.04.2015
comment
Именно так работает Git. Вы должны добавить изменения в свою промежуточную область, прежде чем зафиксировать ее. Например, вы можете добавлять в коммит только некоторые файлы и комментировать их, а не все файлы постоянно. Вот удобное объяснение того, что это делает и почему: gitready. com/beginner/2009/01/18/the-staging-area.html - person Kilanash; 07.04.2015

Пытаться

git add -u

Опция "u" означает обновление. Это обновит репо и фактически удалит файлы из репо, которые вы удалили в своей локальной копии.

git add -u [filename]

чтобы выполнить удаление только одного файла. После нажатия файл больше не будет в репо.

Альтернативно,

git add -A .

эквивалентно

git add .

git add -u .

Обратите внимание на дополнительные '.' на git add -A и git add -u


Внимание! Начиная с git 2.0 (середина 2013 года) это всегда размещает промежуточные файлы во всем рабочем дереве.
Если вы хотите stage-файлы по текущему пути вашего рабочего дерева, вам необходимо использовать:

git add -A .

Также см.: Разница между git add -A и git add .

person Matt Kneiser    schedule 08.05.2012

Следующий ответ относится только к Git версии 1.x, но и к Git версии 2.x.

Вы хотите git add -A:

git add -A этапы Все;

git add . этапы новые и измененные, без удаленных;

git add -u этапов изменены и удалены, без новых.

person thebr0ken    schedule 22.03.2013
comment
Обратите внимание, что приведенное выше относится только к Git 1.x. Для git версии 2.x git add -A эквивалентно git add .. Дополнительные обсуждения см. здесь. - person jdhao; 23.04.2020

git add --all или git add -A или git add -A . Все этапы

git add . Новые и измененные этапы, но не удаленные

git add -u Этапы изменены и удалены, но без новых

git commit -a Означает git add -u и git commit -m "message"

После написания этой команды выполните следующие действия:

  1. нажмите i
  2. напишите ваше сообщение
  3. нажмите esc
  4. нажмите :wq
  5. нажмите ввод

git add <list of files> добавить конкретный файл

git add *.txt добавить все файлы txt в текущий каталог

git add docs/*/txt добавить все файлы txt в папку с документами

git add docs/ добавить все файлы в каталог документов

git add "*.txt" или git add '*.txt' добавить все файлы во весь проект

person akshay_rahar    schedule 05.03.2016

Я не уверен, что он добавит удаленные файлы, но git add . из корня добавит все неотслеживаемые файлы.

person bcherry    schedule 16.08.2010
comment
см. мой ответ о том, как добавить удаленные файлы - person Matt Kneiser; 18.02.2013

Это моя альтернатива (в любом bash):

$ git status -s|awk '{ print $2 }'|xargs git add

Для сброса

$ git status -s|awk '{ print $2 }'|xargs git reset HEAD
person Giacomo Tesio    schedule 03.08.2012

Я создал проект G2, удобную среду для любителей командной строки git.
Пожалуйста, получите проект с github - G2 https://github.com/orefalo/g2

В нем есть куча удобных команд, одна из которых именно то, что вам нужно: freeze

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

person Olivier Refalo    schedule 08.05.2012

Для более новой версии Git.

Я попробовал git add -A, и это подсказало,

предупреждение: поведение «git add --all (или -A)» без аргумента пути из подкаталога дерева изменится в Git 2.0 и больше не должно использоваться. Чтобы добавить содержимое для всего дерева, запустите:

git add --all :/ (или git add -A :/)

Чтобы ограничить команду текущим каталогом, запустите:

git добавить --все . (или git добавить -A .)

В текущей версии Git команда ограничена текущим каталогом.


Затем я попробовал ниже, что сработало.

git add --all :/
person Parag Tyagi    schedule 06.11.2015

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

git add $(git ls-files -mo --exclude-standard)

(синтаксис $() предназначен для оболочки bash). Я предполагаю, что параметр командной строки -mod должен добавить также удаленные файлы... Или, если у вас есть имена файлов со встроенными пробелами, следующий однострочный трюк должен помочь:

git ls-files -z --deleted --modified --others --exclude-standard | xargs -0 git add
person Maurizio Loreti    schedule 30.07.2015

Из документации Git, начиная с версии 2.0:

Чтобы добавить содержимое для всего дерева, запустите:

git add --all :/

or

git add -A :/

Чтобы ограничить команду текущим каталогом, запустите:

git add --all .

or

git add -A .
person HOKBONG    schedule 18.04.2017