Разница между «git add -A» и «git add».

Вы можете использовать Caller для получения пути к текущему исходному исходному файлу, например:

package sample

import (
    "testing"
    "runtime"
)

func TestGetFilename(t *testing.T) {
    _, filename, _, _ := runtime.Caller(0)
    fmt.Println("Current test filename: " + filename)
}
2706
задан CharlesB 25 October 2013 в 16:48
поделиться

2 ответа

Этот ответ только относится версия 1.x Мерзавца. Для версии 2.x Мерзавца см. другие ответы.

<час>

Сводка:

  • git add -A этапы все изменения

  • git add . этапы новые файлы и модификации, без удалений

  • git add -u модификации этапов и удаления, без новых файлов

<час>

Деталь:

git add -A эквивалентно git add .; git add -u.

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

git add -u взгляды весь уже отслеженные файлы и этапы изменения в тех файлах, если они отличаются или если они были удалены. Это не добавляет новых файлов, это только подготавливает изменения в уже отслеженных файлах.

git add -A удобный ярлык для того, чтобы сделать обоих из тех.

можно проверить различия с чем-то вроде этого (обратите внимание, что для версии 2.x Мерзавца вывод для git add . git status будет отличаться):

git init
echo Change me > change-me
echo Delete me > delete-me
git add change-me delete-me
git commit -m initial

echo OK >> change-me
rm delete-me
echo Add me > add-me

git status
# Changed but not updated:
#   modified:   change-me
#   deleted:    delete-me
# Untracked files:
#   add-me

git add .
git status

# Changes to be committed:
#   new file:   add-me
#   modified:   change-me
# Changed but not updated:
#   deleted:    delete-me

git reset

git add -u
git status

# Changes to be committed:
#   modified:   change-me
#   deleted:    delete-me
# Untracked files:
#   add-me

git reset

git add -A
git status

# Changes to be committed:
#   new file:   add-me
#   modified:   change-me
#   deleted:    delete-me
4004
ответ дан Rory O'Kane 26 October 2013 в 03:48
поделиться

Из инструкций Чарльза , после тестирования мое предлагаемое понимание будет следующим:

# For the next commit
$ git add .   # Add only files created/modified to the index and not those deleted
$ git add -u  # Add only files deleted/modified to the index and not those created
$ git add -A  # Do both operations at once, add to all files to the index

Это сообщение в блоге также может быть полезно для понимания, в какой ситуации могут быть эти команды применено: Удаление удаленных файлов из рабочего каталога Git .

133
ответ дан 14 September 2019 в 05:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: