2013-02-11 15 views
15

Есть ли способ в Git для создания и фиксации файлов в одной команде? Например, в моем локальном репозитории я создал файлы index.html, styles.css, расположенные в папке css и script.js, расположенной в папке js. Теперь я хочу запустить одну команду для создания и передачи всех этих файлов. Я пробовал код ниже, но он не работалGit stage и commit с одной командой

git commit -a -m "my commit message" 

ответ

9

Вы можете сделать это, используя псевдоним.

Определить псевдоним, как это:

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

Затем вы можете использовать его как обычные команды мерзавца: git your-alias -m 'commit message'

+1

Это должно быть установлено в качестве ответа, работ Отлично. Я использую '[alias] \t ac =! git add -A && git commit', и он творит чудеса для моего рабочего процесса :) – Fumler

13

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

Вы можете использовать псевдоним для объединения git add ... и git commit ... в одну командную строку. Но если вы это сделаете, найдите время, чтобы сценарий не должен был использовать git add . или git add -A, так как это неизбежно приведет к тому, что вы делаете файлы, которые вам действительно не нужны.

0
if [ -z "$1" ]; 
    then echo "Please supply a commit message wrapped in single quotes '' before you proceed!"; 
else 
    cd /opt/lampp/htdocs/namOfProject/ 
    git add * 
    git commit -am "$1" 
    git push; 
fi 

Обычно я использую простой сценарий оболочки, который запускает все в одной чистой развертке. Сохраните скрипт где угодно и дать ему имя, как nameOfScript.sh

Затем, и это важно, сделать файл исполняемым следующим образом:

chmod +x ./nameOfScript.sh 

Выполнить это следующим образом на вашем терминале:

./nameOfscript.sh 'Your commit's description' 

Объясняя сценарий

  1. Первая строка просто проверяет, есть ли описание для вашей фиксации. Он передается в качестве аргумента в командной строке.

  2. Четвертая строка изменяется в каталог вашего проекта.

  3. Тогда вы будете стадии изменения и зафиксировать их с аргументом, что вы прошли в.

  4. Наконец, второй последняя строка будет толкать изменения в удаленном хранилище

7

Что вы хотите:

git commit -am "Message for my commit" 

Это автоматически добавит все, и вы можете ввести свое сообщение в одной команде. "-a --all Сообщите команде, чтобы автоматически создавать файлы, которые были изменены и удалены, но новые файлы, о которых вы не сказали Git, не затрагиваются."

" -m --message = Используйте данное сообщение как сообщение фиксации. Если несколько -m опции заданы, их значения объединяются в виде отдельных пунктов « https://git-scm.com/docs/git-commit

Если вы хотите, чтобы организовать и совершить неотслеживаемые файлы, вы можете:.

git add -A & git commit -am 'message' 
Смежные вопросы