2014-02-12 4 views
0

У меня есть 3 файлов, A, B, C.Git проигравшие изменения

Я сделал некоторые изменения в А и В, а затем побежал git diff, чтобы проверить изменения, которые я сделал. Все выглядело хорошо. Затем я внес изменения в «C» и снова запустил git diff, но на этот раз он показывает только изменения, которые я сделал для «C». Если я нахожу git diff HEAD, то я могу увидеть изменения ко всем 3 файлам.

Что произойдет, когда я совершу? Будет ли он совершать только изменения в C или A, B, C?

+2

Вы устроив эти изменения на всех? –

+1

Вы действительно не запускали 'git add' для файлов A и B перед запуском' git diff' во второй раз? –

+0

@Brian, нет, я просто делаю git add и git diff перед git commit. Я проверю, что такое «постановка». at-Lorenzo: Да, я добавил git для A и B .. и проверил git diff. Затем сменили C и git добавили C .. затем снова git diff – Crypto

ответ

2

Если вы указали 0 и 0, указав git diff --cached, чтобы увидеть их изменения. git diff показывает только неустановленные изменения. Каркнул git diff man page:

Various ways to check your working tree 

    $ git diff   (1) 
    $ git diff --cached (2) 
    $ git diff HEAD  (3) 

1. Changes in the working tree not yet staged for the next commit. 
2. Changes between the index and your last commit; what you would be committing 
    if you run "git commit" without "-a" option. 
3. Changes in the working tree since your last commit; what you would be 
    committing if you run "git commit -a" 

В конечном счете, вы должны также использовать git status, прежде чем совершить, чтобы увидеть, что именно вы будете совершать.

1

Вы добавили A и B через git add. Если вы запустите git diff после размещения файла filex для следующего коммита, вы не увидите изменений. Это ожидаемое поведение, и вы можете запустить git diff --cached, чтобы увидеть изменения в добавленных файлах.

Если вы измените другой файл, C, git diff покажет только изменения в C (еще не завершенные). В команде git diff HEAD показаны изменения как для поэтапных, так и для нестационарных файлов: именно они показывают изменения в рабочем дереве с момента последнего совершения.

Чтобы кратко ответить на исходный вопрос, git commit будет совершать изменения во все файлы, которые вы модифицированными (A, B, C), а не только C.

Смежные вопросы