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.
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"