Статьи

Git - Как отменить 'git добавить' перед фиксацией? - Qaru

Опубликовано: 22.08.2018

В дополнение к принятому ответу, если ваш ошибочно добавленный файл был огромным, вы, вероятно, заметите, что даже после его удаления из индекса с помощью "git reset" он все еще занимает место в .git каталог. Это не о чем беспокоиться, файл действительно находится в репозитории, но только как "свободный объект", он не будет скопирован в другие репозитории (через clone, push), и пространство будет в конечном итоге возвращено - хотя возможно, не очень скоро. Если вы беспокоитесь, вы можете запустить:

git gc --prune=now

Обновление (следующим образом я попытаюсь устранить некоторую путаницу, которая может возникнуть из самых голосованных ответов):

Итак, что представляет собой реальный отменить из git add?

git reset HEAD <file>?

или

git rm --cached <file>?

Строго говоря, и если я не ошибаюсь: none .

git add нельзя отменить - в целом.

Напомним сначала, что действительно делает git add <file>:

Если <file> был ранее не отслеживался , git add добавляет его в кеш с его текущим контентом.

Если <file> уже отслеживался , git add сохраняет текущий контент (моментальный снимок, версия) в кеш. В GIT это действие по-прежнему называется добавить , (а не просто обновлять его), поскольку две разные версии (моментальные снимки) файла рассматриваются как два разных элемента: следовательно, мы действительно добавляем новый элемент в кэш, который в конечном итоге будет выполнен позже.

В свете этого вопрос немного неоднозначен:

Я ошибочно добавил файлы с помощью команды...

Сценарий OP, по-видимому, является первым (необработанным файлом), мы хотим, чтобы "undo" удалял файл (а не только текущее содержимое) из отслеживаемых элементов. Если это , то это нормально для запуска git rm --cached <file>.

И мы могли бы также запустить git reset HEAD <file>. Это в целом предпочтительнее, поскольку оно работает в обоих сценариях: оно также отменяет, когда мы ошибочно добавили версию уже отслеживаемого элемента.

Но есть два оговорки.

Во-первых: Есть (как указано в ответе) только один сценарий, в котором git reset HEAD не работает, но git rm --cached делает: новый репозиторий (без коммитов). Но, действительно, это практически нерелевантный случай.

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

Пример:

$ git init $ echo "version 1" > file.txt $ git add file.txt # first add of file.txt $ git commit -m 'first commit' $ echo "version 2" > file.txt $ git add file.txt # stage (don't commit) "version 2" of file.txt $ git diff --cached file.txt -version 1 +version 2 $ echo "version 3" > file.txt $ git diff file.txt -version 2 +version 3 $ git add file.txt # oops we didn't mean this $ git reset HEAD file.txt # undo ? $ git diff --cached file.txt # no dif, of course. stage == HEAD $ git diff file.txt # we have lost irrevocably "version 2" -version 1 +version 3

Конечно, это не очень важно, если мы просто следуем обычному ленивому рабочему процессу "git add" только для добавления новых файлов (случай 1), и мы обновляем новое содержимое с помощью команды commit, git commit -a,

Новости

Специальные объективы на смартфон

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

Коврики для йоги nasha
Как выбрать коврик для йоги? Этим вопросом задаются не только новички, но и более опытные практикующие. Обилие предложений на рынке сегодня позволяет купить коврик на любой вкус, цвет и бюджет на сайте

Ecotton
Компания Samsung Electronics анонсировала революционную новую технологию для стиральных машин QuickDrive™, презентация которой пройдет в рамках конференции IFA 2017 в Берлине. QuickDrive™ лежит в основе

Где покупать дешевые авиабилеты
Сегодня многие люди прекрасно понимают, что в нашем мире начала двадцать первого века одной из наиболее важных ценностей можно с полным правом назвать время. И ведь это действительно так и есть, потому

Женская обувь осень-зима 2018-2019: фото с модных показов
Выбирая обновки к очередному сезону, настоящие модницы обязательно просматривают показы именитых дизайнеров. Трендовой должна быть не только одежда, но и обувь – тогда ваш образ будет идеальным. Какие

Где покупать часы
В настоящее время для приобретения необходимых нам товаров нет необходимости бегать по многочисленным магазинам нашего города. Да ещё и неизвестно сможем мы найти его здесь или нет. Прекрасной возможностью

GPS навигаторы
Страница: 1 2 3 4 5 6 7 Texet TN-705 Texet TN-705 - новый ультрастильный навигатор на процессоре SIRF Atlas-IV с частотой 500 МГц с большим 5 дюймовым экраном! Модель обладает широкой функциональностью

Женские лосины и брюки купить в интернет магазине
Теплые домашние брюки на завязках. Ткань: футер с лайкрой. Молодежные брюки с карманами. Материал: Футер. Состав: 72% хлопок, 20% полиэстер, 8% лайкра Прямые брюки в горох.Длина брюк по

Шоколад натуральный
Шоколад можно купить не только в магазине. Его можно приготовить и в домашних условиях. Если вы не знаете, как сделать шоколад, читайте дальше. Если шоколад натуральный, в нем должно содержаться 55% тертого

Где купить перчатки оптом
Каждый человек в современном мире имеет возможность приобрести для себя товар не выходя из дома. Это связано с тем, что в мире интернета создано огромное количество интернет-магазинов, через которые возможно

rss