Статьи

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,

Новости

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

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

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

Доставка обедов в офис в Киеве
Рабочий день современного офисного служащего напряжен и очень труден. Хотя обеденные перерывы есть в любом распорядке, но если рядом нет хорошего и дешевого кафе или ресторана, то люди предпочтут питаться

Центр эстетической хирургии и косметологии
ФГУП " Институт пластической хирургии и косметологии" традиционно в течение многих десятилетий занимается вопросами разработки, усовершенствования и клинической апробации новых лечебно-профилактических

Интернет Магазин Часов UA
О том, как правильно выбирать наручные часы, сказано уже очень много. Но все же можно дать еще несколько простых и несложных советов, которые гарантируют удовольствие от покупки. Как известно, современные

Пиво ipa
Термин «крафтовое пиво» пришел в русский язык из США. Где под ним подразумевалось пиво, сваренное в небольших пивоварнях по авторской рецептуре. Слово «Craft» можно перевести как «ремесленное». Такое

Де купувати меблі
На сучасному вітчизняному ринку представлено широке розмаїття меблів, як для будинку, так і для офісу чи інших потреб. За допомогою таких виробів можна обставити практично будь-яке приміщення, оформлене

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

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

Психолог
«Результат работы крутого специалиста виден со стороны очень измеримо и наглядно» В настоящее время очень распространено заблуждение, поддерживаемое большинством печатных изданий. Суть заблуждения в

rss