Git добавить и зафиксировать в одной команде

Есть ли способ, который я могу сделать

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 нет. Что делает?

Ответ 1

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

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

и используйте его с

git add-commit -m 'My commit message'

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

Ответ 2

git commit -am "message"

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

git add .
git commit -m "message"

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

git add app
git commit -m "message"

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

Ответ 3

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

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

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

Ответ 4

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

git add -A && git commit -m "comment" 

Ответ 5

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

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

git commit -am "comment"

Эта строка добавит и скопирует все измененные в репозиторий.

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

git add . ; git commit -am "message"

Ответ 6

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

git commit -a -m "commit message"

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

[alias]
    ac = commit -a -m

Затем вы можете использовать его следующим образом:

git ac "commit message"

Ответ 7

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

git commit -am "commit all the things"

Ответ 8

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

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

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

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

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

  • теперь вы можете выполнить весь процесс с помощью команды gacp.

Ответ 9

Если вы наберете:

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

один раз вам просто нужно будет ввести

git a

каждый раз:

git a 'your comment'

Ответ 10

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

git commit -m "message" .     

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

Ответ 11

У меня есть эта функция в моих .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"
}

Ответ 12

Я использую оболочку

#!/bin/sh

clear

git add -A 
git commit -a -m "'$*'"

сохранить, например, git.sh и более поздний вызов:

sh git.sh your commit message

Ответ 13

Вы можете использовать -a

git commit -h

...
Commit contents options
    -a, -all    commit all changed files
...

git commit -a # It will add all files and also will open your default text editor.

Ответ 14

Я использую следующее (оба выполняются, поэтому я постараюсь запомнить это):

# Add All and Commit
  aac = !echo "Enter commit message:" && read MSG && echo "" && echo "Status before chagnes:" && echo "======================" && git status && echo "" && echo "Adding all..." && echo "=============" && git add . && echo "" && echo "Committing..." && echo "=============" && git commit -m \"$MSG\" && echo "" && echo "New status:" && echo "===========" && git status

# Add All and Commit with bumpted Version number
  aacv = !echo "Status before chagnes:" && echo "======================" && git status && echo "" && echo "Adding all..." && echo "=============" && git add . && echo "" && echo "Committing..." && echo "=============" && git commit -m \"Bumped to version $(head -n 1 VERSION)\" && echo "" && echo "New status:" && echo "===========" && git status

С частью echo "Enter commit message:" && read MSG, вдохновленной Sojan V Jose

Мне бы хотелось получить инструкцию if else там, чтобы я мог получить aacv, чтобы спросить меня, хочу ли я развернуть, когда это будет сделано, и сделайте это для меня, если я наберу "y", но, я думаю, я должен положить что в моем .zshrc файле

Ответ 15

Я использую следующий псевдоним для добавления all и commit:

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

Затем, набрав:

git ac

Я получаю окно vim для получения дополнительных инструментов редактирования для сообщения о фиксации.

Ответ 16

Я использую этот псевдоним git:

git config --global alias.cam '!git commit -a -m '

Итак, вместо вызова

git add -A && git commit -m "this is a great commit"

Я просто делаю:

git cam "this is a great commit"

Ответ 17

вы можете использовать git commit -am "[комментарий]" //лучшее решение или git добавить. && git commit -m "[комментарий]"

Ответ 18

Сначала проверьте, какие псевдонимы у вас есть...

git config --get-regexp alias

Если его там нет, вы можете создать свой собственный (ссылка: https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases)

//git add

git config --global alias.a '!git add -A'

//git commit

git config --global alias.c '!git commit'

//git commit -m

git config --global alias.cm '!git commit -m'

//git add commit

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

//git add commit -m

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

Например, если вы используете последний...

git acm 'My commit'

Ответ 19

На случай, если кто-то захочет "добавить и зафиксировать" для одного файла, что было в моём случае, я создал скрипт, сделанный ниже:

#!/bin/bash

function usage {
    echo "Usage: $(basename $0) <filename> <commit_message>"    
}

function die {
    declare MSG="[email protected]"
    echo -e "$0: Error: $MSG">&2
    exit 1
}

(( "$#" == 2 )) || die "Wrong arguments.\n\n$(usage)"

FILE=$1
COMMIT_MESSAGE=$2

[ -f $FILE ] || die "File $FILE does not exist"

echo -n adding $FILE to git...
git add $FILE || die "git add $FILE has failed."
echo done

echo "commiting $file to git..."
git commit -m "$COMMIT_MESSAGE" || die "git commit has failed."

exit 0

Я назвал его "gitfile.sh" и добавил его в свой $ PATH. Затем я могу запустить git add и commit для одного файла в одной команде:

gitfile.sh /path/to/file "MY COMMIT MESSAGE"

Ответ 20

Я надеюсь, что это кому-то поможет, и, пожалуйста, не стесняйтесь редактировать или улучшать. Я не уверен, что это самый быстрый способ, но это, безусловно, упрощает процесс принятия кода, используя "ohmyzsh" для Git.

https://ohmyz.sh/

  • git add . сокращено до ga .
  • git commit -m "message" сокращено до gc -m "message"
  • git push сокращено до gp

enter image description here

Ответ 21

  • введите git add . && git commit -am и введите
  • введите history и введите
  • помните номер для указанной выше команды, например, номер 543
  • Отныне для каждого типа фиксации !543 "your comment here" i.e.  восклицательный знак + номер и пробел и ваш комментарий.

Ответ 22

Этот результат - Попробуйте это: Простой скрипт одна команда для git add, git commit и git push

Откройте свой CMD в Windows и вставьте этот ответ

git commit -m "your message". && git push origin master

Вот пример моего снимка экрана: https://i.stack.imgur.com/2IZDe.jpg

Ответ 23

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

gacm "your comment"