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 ]

4 голосов
/ 14 января 2012

делаю снаряд

#!/bin/sh

clear

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

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

sh git.sh your commit message
4 голосов
/ 03 октября 2016

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

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

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

git a

каждый раз:

git a 'your comment'
2 голосов
/ 31 января 2019

Вы можете использовать -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.
1 голос
/ 16 декабря 2016

Я использую следующий псевдоним для добавить все и зафиксировать :

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

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

git ac

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

1 голос
/ 27 апреля 2016

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

# 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 файле

0 голосов
/ 23 мая 2019

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

#!/bin/bash

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

function die {
    declare MSG="$@"
    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"
0 голосов
/ 04 января 2019

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

git config --get-regexp alias

Если его нет, вы можете создать свой собственный (ссылка: https://git -scm.com / book / ru / 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'
0 голосов
/ 09 ноября 2017
  1. введите git add . && git commit -am и введите
  2. введите history и введите
  3. запомните номер вышеупомянутой команды, скажем, номер 543
  4. С этого момента для каждого типа фиксации !543 "your comment here", т.е. восклицательный знак + номер и пробел и ваш комментарий.
0 голосов
/ 18 марта 2017

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

0 голосов
/ 14 декабря 2015

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

gacm "your comment"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...