Вы можете увидеть пример получения QueryDict для метода PUT в коде django-piston (см. метод coerce_put_post)
Когда вы изменяете файл в своем репозитории, изменение изначально не выполняется. Чтобы зафиксировать его, вы должны обработать его, то есть добавить в индекс, используя git add
. Когда вы делаете фиксацию, фиксируются те изменения, которые были добавлены в индекс.
git reset
изменяет как минимум то место, куда указывает текущая ветвь ( HEAD
). Разница между - смешанный
и - мягкий
заключается в том, был ли также изменен ваш индекс. Итак, если мы находимся на ветке master
с этой серией коммитов:
- A - B - C (master)
HEAD
указывает на C
, а индекс соответствует C
.
Когда мы запускаем git reset --soft B
, master
(и, следовательно, HEAD
) теперь указывает на B
, но индекс все еще имеет изменения с C
; git status
покажет их как поставленные. Поэтому, если мы запустим git commit
на этом этапе, мы получим новый коммит с теми же изменениями, что и C
.
Хорошо, начнем снова отсюда:
- A - B - C (master)
Теперь сделаем git reset --mixed B
. (Примечание: - смешанный
- вариант по умолчанию). Еще раз, master
и HEAD
указывают на B, но на этот раз индекс также изменяется, чтобы соответствовать B
. Если на этом этапе мы запустим git commit
, ничего не произойдет, поскольку индекс соответствует HEAD
.У нас все еще есть изменения в рабочем каталоге, но поскольку их нет в индексе, git status
показывает их как неустановленные. Чтобы зафиксировать их, вы должны git add
, а затем выполнить фиксацию как обычно.
И, наконец, - сложный
такой же, как - смешанный
(он изменяет вашу HEAD
и индекс), за исключением того, что - hard
также изменяет ваш рабочий каталог. Если мы находимся на C
и выполняем git reset --hard B
, то изменения, добавленные в C
, а также любые незафиксированные изменения, которые у вас есть, будут будут удалены, и файлы в вашей рабочей копии будут соответствовать фиксации B
. Поскольку таким образом вы можете безвозвратно потерять изменения, вам всегда следует запускать git status
перед выполнением аппаратного сброса, чтобы убедиться, что ваш рабочий каталог чист или что вы готовы потерять незафиксированные изменения.
И, наконец, визуализация: