Як я можу поетапно виконувати всі файли, включаючи щойно додані файли, використовуючи одну команду?
Як я можу поетапно виконувати всі файли, включаючи щойно додані файли, використовуючи одну команду?
Відповіді:
Чи
git add -A && git commit -m "Your Message"
вважати "єдиною командою"?
Редагувати на основі відповіді @ thefinnomenon нижче :
Щоб мати його як a 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-ignore-remove
Оновіть індекс не лише там, де у робочому дереві є відповідність файлу, але і там, де в індексі вже є запис. Це додає, модифікує та видаляє записи індексу, щоб відповідати робочому дереву.
Якщо
<pathspec>
при використанні параметра -A не вказано, усі файли у всьому робочому дереві оновлюються (старі версії Git використовуються для обмеження оновлення до поточного каталогу та його підкаталогів).
git add -A ; git commit -m "Your Message"
Ця команда додасть і заповнить усі змінені файли, але не новостворені файли .
git commit -am "<commit message>"
Від людини git-počin:
-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 автоматично здійснював усі ваші зміни в поточній гілці як комісія під назвою "Темп". Потім ви можете 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. протилежності &&
IS ||
, який запускає другу команду , коли перша команда невдало, або з рівнем помилки 1.
Крім того, ви можете створити alise як 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
... дуже зручно!
Знайдено тут (питання та всі відповіді, на жаль, видалено, видно лише з високою репутацією)