Как я могу подготовить и зафиксировать все файлы, включая вновь добавленные, с помощью одной команды?
Как я могу подготовить и зафиксировать все файлы, включая вновь добавленные, с помощью одной команды?
Ответы:
Имеет ли
git add -A && git commit -m "Your Message"
считать "единой командой"?
Редактировать на основе ответа @ thefinnomenon ниже :
Чтобы иметь это как git alias, используйте:
git config --global alias.coa '!git add -A && git commit -m'
и передайте все файлы, включая новые, с сообщением:
git coa "A bunch of horrible changes"
Пояснение (из git addдокументации ):
-A, --all, --no-игнорировать-удаление
Обновите индекс не только там, где в рабочем дереве есть соответствие файла, но также там, где в индексе уже есть запись. Это добавляет, изменяет и удаляет записи индекса в соответствии с рабочим деревом.
Если не задано no
<pathspec>при использовании опции -A, обновляются все файлы во всем рабочем дереве (старые версии Git использовались для ограничения обновления текущим каталогом и его подкаталогами).
git add -A ; git commit -m "Your Message"
Эта команда добавит и зафиксирует все измененные файлы, но не вновь созданные файлы .
git commit -am "<commit message>"
От человека гит-коммит:
-a, --all
Tell the command to automatically stage files that have been modified
and deleted, but new files you have not told Git about are not
affected.
Я использую эту функцию:
gcaa() { git add --all && git commit -m "$*" }
В моем файле конфигурации Zsh, так что я могу просто сделать:
> gcaa This is the commit message
Автоматически ставить и фиксировать все файлы.
function gcaa() { git add --all && git commit -m "$*" && git push }
gaa && gc -m "my commit"но это намного приятнее ... <поспешил изменить bashrc ..>
Один вкладыш для размещения ВСЕХ файлов ( измененных , удаленных и новых ) и фиксации с комментарием:
git add --all && git commit -m "comment"
http://git-scm.com/docs/git-add
http://git-scm.com/docs/git-commit
Не уверен, почему все эти ответы танцуют вокруг того, что я считаю правильным решением, но то, что он стоит здесь, это то, что я использую:
git config --global alias.coa '!git add -A && git commit -m'
git coa "A bunch of horrible changes"
ПРИМЕЧАНИЕ: coaэто сокращение от «совершать все» и может быть заменено всем, что душе угодно
git aliasпуть, остальное скучно.
Фиксация в git может состоять из нескольких шагов или одного шага в зависимости от ситуации.
В этой ситуации вы обновили несколько файлов и хотите зафиксировать:
Вы должны добавить все измененные файлы, прежде чем что-либо зафиксировать.
git add -A
или
git add --all
После этого вы можете использовать коммит всех добавленных файлов
git commit
с этим вы должны добавить сообщение для этого коммита.
Если вы просто хотите «быстрый и грязный» способ сохранить изменения в текущей ветке, вы можете использовать следующий псевдоним:
git config --global alias.temp '!git add -A && git commit -m "Temp"'
После выполнения этой команды вы можете просто набрать, git tempчтобы git автоматически зафиксировал все ваши изменения в текущей ветке как коммит с именем «Temp». Затем вы можете использовать git reset HEAD~позже, чтобы «отменить» изменения, чтобы продолжить работу над ними, или git commit --amendдобавить больше изменений в коммит и / или дать ему правильное имя.
У меня в конфиге два псевдонима:
alias.foo=commit -a -m 'none'
alias.coa=commit -a -m
если мне лень, я просто фиксирую все изменения
git foo
и просто сделать быстрый коммит
git coa "my changes are..."
coa означает «совершить все»
Запустите данную команду
git add . && git commit -m "Changes Committed"
Однако, даже если кажется, что это одна команда, это две отдельные команды, запускаемые одна за другой. Здесь мы просто привыкли &&их объединять. Это не сильно отличается от бега
git add .и git commit -m "Changes Committed"отдельно. Вы можете запустить несколько команд вместе, но последовательность имеет значение здесь. Как, если вы хотите отправить изменения на удаленный сервер вместе с подготовкой и фиксацией, вы можете сделать это, как указано,
git add . && git commit -m "Changes Committed" && git push origin master
Вместо этого, если вы измените последовательность и поместите ее pushв первую очередь, она будет выполнена первой и не даст желаемого толчка после постановки и фиксации только потому, что она уже была запущена первой.
&& запускает вторую команду в строке, когда первая команда возвращается успешно или с уровнем ошибки 0. Противоположность && является|| , что вторая команда выполняется, когда первая команда не выполнена, или с уровнем ошибки 1.
В качестве альтернативы, вы можете создать alise as git config --global alias.addcommit '!git add -a && git commit -m'и использовать его какgit addcommit -m "Added and commited new files"
Отличные ответы, но если вы ищете одну строку, делайте все, вы можете объединить, псевдоним и наслаждаться удобством:
git add * && git commit -am "<commit message>"
Это одна строка, но две команды, и, как уже упоминалось, вы можете использовать псевдонимы этих команд:
alias git-aac="git add * && git commit -am " (пробел в конце важен), потому что вы собираетесь параметризировать новую короткую команду.
С этого момента вы будете использовать этот псевдоним:
git-acc "<commit message>"
Вы в основном говорите:
git, добавьте для меня все неотслеживаемые файлы и передайте их с помощью данного сообщения коммита.
Надеюсь, вы используете Linux, надеюсь, это поможет.
Вы можете написать небольшой скрипт (посмотрите на ответ Яна Клелланда), git-commitallкоторый использует несколько команд git для выполнения того, что вы хотите сделать.
Разместите этот скрипт в любом месте вашего $PATH. Вы можете позвонить по этомуgit commitall ... очень удобно!
Нашел здесь (вопрос и все ответы к сожалению удалены, виден только с высокой репутацией)