2014-02-18 5 views
4

Мой главный вопрос здесь в том, имеет ли смысл всегда делать только git commit -am вместо git add. а затем git commit -m?Понимание, когда использовать git commit -m и git commit -am

Я понимаю, что -am указывает, что он добавит все изменения из измененных файлов TRACKED. Поэтому в ситуации, когда я не добавлял никаких новых файлов, было бы разумно просто запустить git commit -am вместо git add, но было бы лучше всего сделать это:

git add.

git commit -am "message" 

в любом случае?

или даже вместо:

git add -A 

git commit -am "message" 

ответ

6

бы она считается лучшей практикой просто сделать:

мерзавца добавить.

мерзавец совершить -am "сообщение"

в любом случае?

Нет, такой «лучшей практики» нет. Пока вы не хотите включать какие-либо файлы без следа, git add + git commit -m и git commit -am будут делать то же самое.

Есть две ситуации, когда вам нужно использовать git add:

  • если вы хотите включить неотслеживаемые файлы и
  • , если вы не хотите, чтобы совершить все, что изменилось

Второй момент, в частности, является причиной, по которой многие рекомендуют всегда использовать commit -a: После некоторого времени работы с кодом вы часто имеете несколько разных типов изменений в своем рабочем копе y (исправление, над которым вы работали, какое-то несвязанное переименование, некоторые временные изменения для отладки ...). commit -a рискует слишком много вложить в одну сделку - в этих случаях лучше использовать выборочное использование git add.

Но если вы уверены, что хотите совершить все, что вы изменили, используйте git commit -a.

+0

Спасибо за разъяснение! Мне иногда нужно, чтобы «ага!» момент. Я работал над очень маленьким проектом, поэтому, когда я делал фиксацию, это было, как правило, фиксация каждой вещи, которая была изменена с последней фиксации, и в этом случае я устал от git add -A git commit -m , но хотят получить лучшие привычки. – appsecguy

3

Я совершил достаточно кода случайно, делая -am, что я вообще избежать его в эти дни. git add -u будет выполнять те же изменения, что и git commit -a, а затем вы можете сделать git diff --cached, чтобы убедиться, что хотите их совершить. Некоторые из моих коллег даже заходят так далеко, что всегда делают git add -p, поэтому им приходится смотреть на каждый разлад, пока он даже не поставлен.

Если я знаю, что изменения, которые я сделал, являются небольшими, то я по-прежнему буду использовать git commit -am для удобства, но, возможно, стоит отказаться от привычки по умолчанию.

3

Если вы держите свой .gitignore тока, то git commit -am - это вполне адекватный способ сделать что-то. Это ярлык для git add -uA <nopattern> ; git commit -m "message".

Это git, передовая практика субъективна. Я предпочитаю добавлять файлы вручную, чтобы у меня была возможность просмотреть изменения, когда я иду, но вам может и не понадобиться.