Git добавить и зафиксировать в одной команде - PullRequest
315 голосов
/ 28 ноября 2010

Можно ли как-нибудь сделать

git add -A
git commit -m "commit message"

в одной команде?

Я, кажется, много выполняю эти две команды, и если бы у Git была опция, подобная git commit -Am "commit message", это сделало бы жизнь намного удобнее.

git commit имеет -a модификатор, но он не совсем делает то же самое, что и git add -A перед фиксацией.git add -A добавляет вновь созданные файлы, а git commit -am - нет.Что значит?

Ответы [ 21 ]

353 голосов
/ 29 ноября 2010

Вы можете использовать псевдонимы git, например,

git config --global alias.add-commit '!git add -A && git commit'

и использовать его с

git add-commit -m 'My commit message'

РЕДАКТИРОВАТЬ: Возврат к тикам ('), иначе это не удастся при расширении оболочки в Linux. В Windows вместо нее следует использовать двойные кавычки (") (указано в комментариях, не проверено).

219 голосов
/ 28 ноября 2010
git commit -a -m "message"

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

git add .
git commit -m "message"

- это простой способ добавить все файлы, новые или измененные. также применяется вышеуказанная квалификационная квалификация. не удалит файлы, удаленные без команды git rm.

git add app
git commit -m "message"

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

47 голосов
/ 05 декабря 2011

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

git add . && git commit -am "comment"

Эта строка будет добавлять и фиксировать все измененные и добавленные файлы в хранилище.

18 голосов
/ 10 сентября 2012

Просто объедините ваши команды:

git add -A && git commit -m "comment" 
18 голосов
/ 02 ноября 2017

Адаптирует только Алес ответ и судсима комментарий для linux bash :

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

git commit -am "comment"

Эта строка добавит и зафиксирует все изменения в хранилище.

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

git add . ; git commit -am "message"

12 голосов
/ 14 октября 2016

В более поздней версии git вы можете добавлять и фиксировать как это

git commit -a -m "commit message"

Дополнительно вы псевдоним:

[alias]
    ac = commit -a -m

Тогда вы можете использовать это так:

git ac "commit message"
11 голосов
/ 20 июня 2017

уверен, что вы можете использовать:

git commit -am "commit all the things"
8 голосов
/ 02 октября 2014

На моем компьютере с Windows я настроил этот псевдоним .bashrc, чтобы сделать весь процесс более простым.

  • создать / найти свой .bashrc - см. SO ветку
  • добавить следующую строку в файл

    alias gacp='echo "enter commit message : " && read MSG && git add . && git commit -m "$MSG" && git push'
    

    это делает git add commit и push. настроить его любым способом, скажем, вы не хотите, чтобы команда push удалила эту часть

  • перезагрузите .bashrc / закройте и снова откройте вашу оболочку

  • теперь вы можете выполнить весь процесс с помощью команды gacp.
5 голосов
/ 09 октября 2018

Просто используйте:

git commit -m "message" .     

Обратите внимание на "."в конце ... который также может быть путем к файлу / каталогу

5 голосов
/ 10 августа 2017

У меня есть эта функция в моих .bash_profile или .profile или .zprofile, или в любом другом источнике, входящем в оболочку входа:

function gac () {
  # Usage: gac [files] [message]
  # gac (git add commit) stages files specified by the first argument
  # and commits the changes with a message specified by the second argument.
  # Using quotes one can add multiple files at once: gac "file1 file2" "Message".
  git add $1 && git commit -m "$2"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...