Подтвердить что ты не робот

Git: отменить локальные изменения; git добавить. + git rm?

Нужна помощь в выяснении пары общих рабочих процессов с Github. Я пришел из фона VS TFS, так что простите меня.

Отмена ожидающих изменений

Скажем, я клонировал репозиторий git в свою локальную файловую систему. На данный момент локальные файлы проекта соответствуют именно тому, что находится в удаленной репозитории.

Затем я решил внести некоторые изменения в код и изменить локальные версии пары файлов. После некоторого тестирования выяснилось, что я хочу отказаться от своих локальных изменений и вернуть локальные файлы обратно в то, что они находятся в удаленной репозитории.

Как мне отменить эти локальные изменения, восстановив их в текущие версии в репозитории?

Выполнение всех изменений

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

Однако, когда я удаляю локальный файл, который отслеживается в репозитории, "git добавить". не фиксирует изменения rm. Вместо этого мне нужно "git rm [filename]" перед тем, как я "git commit" обновить репозиторий. Я всегда забываю сделать это, хотя.

Есть ли команда git, которая будет "git добавить". и "git rm" любые файлы, которые я удалил локально, за один шаг? После изменения локальных файлов и удаления пары я хотел бы выпустить только одну команду, которая фиксирует все мои изменения до того, как я "git commit" .

4b9b3361

Ответ 1

Как мне отменить эти локальные изменения, восстановив их в текущих версиях в хранилище?

git reset --hard

(это сбросит ваш индекс и рабочий каталог в HEAD)

Есть ли команда git, которая git add. и git rm любые файлы, которые я удалил локально, за один шаг?

git add -u

(это не будет добавлять новые файлы)

Если вы хотите добавить новые файлы, удалите rm 'ed файлы и внесите изменения в файлы:

git add -A

Ответ 2

Вы можете вернуться к своей последней действительной фиксации (то есть копировать удаленное репо в примере тура):

git reset --hard HEAD

Кроме того, я предлагаю прочитать полезную http://progit.org/2011/07/11/reset.html страницу, чтобы лучше понять, как работает reset и что такое индекс, и почему git add и git rm - отдельные команды.