2010-08-16 5 views
209

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

+6

См.: [Разница «git add -A» и «git add.»] (Http://stackoverflow.com/questions/572549/difference-of-git-add-a-and-git-add) – mahalie

ответ

9

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

+0

см. Мой ответ о том, как добавлять удаленные файлы. –

254

Try:

git add -A 

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

git add -A . 

Также см: Difference of git add -A and git add .

+0

это не сработало для меня ... как я могу показать свой вывод ввода-вывода в этом обсуждении? скопировать-вставить мой вывод терминала в качестве ответа на это обсуждение? –

+0

вот проблема, с которой я столкнулся - http://stackoverflow.com/q/7726131/636762 - любезно помогите мне в этом, пожалуйста, –

+0

Это также не может работать, если ваша версия git устарела. Я запускал скрипт на сервере, на котором выполнялся git 1.5.2.5. git add -A не работает. Из сценария сообщение об ошибке не сообщалось. Только из командной строки я обнаружил, что -А не был законным вариантом для добавления. – Eponymous

8
git add . 

есть пространство между оным и». ' (точка в слове). Это делает работу. :)

+1

'git add .' этапы новые и измененные * без удаления * - http://stackoverflow.com/questions/572549/difference-of-git-add-a-and-git-add –

58

Попробуйте

git add -u 

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

git add -u [filename] 

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

В качестве альтернативы,

git add -A .

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

git add . 

git add -u . 

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


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

git add -A . 

Также смотрите: Difference of git add -A and git add .

4

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

Он имеет несколько удобных команды, причем один из них именно то, что ваши ищут: freeze

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

4

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

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

Для сброса

$ git status -s|awk '{ print $2 }'|xargs git reset HEAD 
30

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

git add -A этапов Всего;

git add . этапы нового и модифицированного, без удаления;

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

1

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

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

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

git ls-files -z --deleted --modified --others --exclude-standard | xargs -0 git add 
4

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

Я попытался git add -A и это побудило,

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

мерзавец добавить --all:/(или мерзавец добавить -A: /)

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

мерзавца добавить все . (или git add -A.)

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


Тогда я попробовал, ниже которого работал.

git add --all :/ 
14

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. нажмите я
  2. написать сообщение
  3. нажмите ESC
  4. пресс :жд
  5. пресс введите

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

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

git add docs/*/txt добавить все текстовые файлы в каталоге DOCS

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

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

1

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

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

git add --all :/ 

или

git add -A :/ 

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

git add --all . 

или

git add -A . 
1

Это то, что я использую для постановки всех измененных файлов в папке:

git add . 

Спасибо!

+1

Это похоже на повторение [этого существующего ответа] (https://stackoverflow.com/a/8680056) и [этот существующий ответ] (https://stackoverflow.com/a/3498057). – Pang

Смежные вопросы