2013-11-09 8 views
30

Кажется легким, но я просто не понимаю. Я в корне моего приложения.git commit -m vs. git commit -am

Вот мой рабочий процесс.

git add . 
git commit -m "added a new feature some files changed" 
git push heroku master 

Это обычно работает. Все изменения меняются.

Но иногда у меня есть файл, который я изменить, но когда я нажимаю на Heroku изменения не там, что один файл ... но для большинства файлов изменения есть ...

Но если Я

git add . 
git commit -am "added a new feature some files changed" 
git push heroku master 

все (все изменения) выталкиваются Heroku

+0

Можете ли вы привести примеры того, какой файл не пойман? Это файл, который вы удалили? Иногда вам нужно сделать git add. --update', чтобы поймать их. – helion3

+0

@BotskoNet - Файл является файлом CSS в моем приложении Rails. По какой-то причине, когда я редактирую этот файл, изменения не переносятся на Heroku. Это произошло раньше, и я просто не понимаю, почему. – slindsey3000

+0

Возможно, это вам поможет. [Different между теми] [1] [1]: http://stackoverflow.com/a/15419846/3962576 – Reven

ответ

33

От the docs:

git commit -a автоматически обрабатывать все отслеженные, измененные файлы до фиксации Если вы считаете, что этап добавления git в рабочий процесс слишком громоздкий, Git позволяет пропустить эту часть с опцией -a. В основном это означает, что Git запускает git add в любом файле, который «отслеживается» - то есть любой файл, который был в вашем последнем коммите и был изменен. Это позволяет вам сделать более рабочий процесс в стиле Subversion, если вы хотите , просто отредактируйте файлы, а затем запустите git commit -a, когда вы хотите сделать снимок всего, что было изменено. Вам все равно нужно запустить git add, чтобы начать отслеживать новые файлы, хотя, как и Subversion.

Использование опции -am позволяет вам добавлять и создавать сообщение для фиксации в одной команде.

+0

Так почему 'мерзавец совершить -am "х"' работу ... но. ... 'git add .'' git commit -m "x" 'не работает? – slindsey3000

+8

Потому что некоторые из ваших файлов не организованы. Это происходит с удаленными/добавленными файлами, которые в настоящее время не отслеживаются. Обычно вам нужно выполнить 'git add -u' для того, чтобы создавать« необработанные »файлы. '-am' сделает это и для вас. –

+1

@ slindsey3000 Возможно, вы ищете git add -A, который аналогичен git add --all, который отличается от git add. –