Что означает «этап» в git?

Мне трудно понять, потому что я не мог найти смысл слов, используемых для действий. Я проверил словарь для значения «stage», и ни одно из значений не было связано с концепциями управления версиями.

Что означает «этап» в контексте git?

git
242 голоса | спросил 000 15 22011vEurope/Moscow11bEurope/MoscowTue, 15 Nov 2011 07:27:30 +0400 2011, 07:27:30

8 ответов


245

В stage файл должен просто подготовить его для фиксации. Git с его индексом позволяет вам фиксировать только определенные части изменений, которые вы сделали со времени последнего коммита. Предположим, вы работаете над двумя функциями: один закончен, и все еще нужно выполнить определенную работу. Вы хотите сделать фиксацию и вернуться домой (5 часов, наконец!), Но не хотели бы совершать части второй функции, которая еще не выполнена. Вы ставите части, которые, как вы знаете, относятся к первой функции, и совершаете. Теперь ваша фиксация - это ваш проект с первой выполненной функцией, а второй все еще находится в процессе работы в вашем рабочем каталоге.

ответил Rook 15 22011vEurope/Moscow11bEurope/MoscowTue, 15 Nov 2011 07:36:57 +0400 2011, 07:36:57
112

Поскольку все до сих пор на это ответили «формальным» способом, позвольте мне сделать это с помощью альтернатив для повышения уровня обучения с помощью метафор.

Таким образом, область выглядит следующим образом:

  • кэш файлов, которые вы хотите зафиксировать
  • не серия трубок, а фактически самосвал, готовый переместить работу, которую вы загружаете, в репозиторий
  • волшебное место, где выбранные файлы будут превращены в камень с вашим волшебством и могут быть магически перенесены в хранилище по вашей прихоти.
  • дорога с желтым кирпичом для файлов, которые будут успешно перемещаться в хранилище (или отпадают, если вы хотите вернуться)
  • вымышленное место в морском порту, где файлы получают пару цементных ботинок, а затем бросают в море репозитория.
  • стол приема в библиотеке, вы помещаете файлы там для того, чтобы библиотекарь подготовился для подачи в библиотеку.
  • ящик, в который вы помещаете вещи, прежде чем подталкивать его под кроватью, где ваша кровать - это хранилище ящиков, которые вы ранее засунули в
  • загрузочный отсек файлов, прежде чем он войдет в хранилище хранилища с загрузчиком
  • фильтр электрической капельной кофеварки, если файлы похожи на кофейный порошок, тогда зафиксированные файлы - это сваренный кофе.
  • Офис Скруджа Макдака рядом с хранилищем, файлы похожи на монеты, прежде чем они войдут в хранилище своей огромной денежной корзины.
  • магазин домашних животных, как только вы принесете домашнее животное, которое вы совершили.

Это магический !

ответил Spoike 15 22011vEurope/Moscow11bEurope/MoscowTue, 15 Nov 2011 11:56:49 +0400 2011, 11:56:49
25

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

Staging позволяет более точно управлять точным тем, как вы хотите подходить к управлению версиями.

ответил Josh K 15 22011vEurope/Moscow11bEurope/MoscowTue, 15 Nov 2011 07:31:14 +0400 2011, 07:31:14
25

Шаг - шаг до процесса фиксации в git. То есть, фиксация в git выполняется в два этапа: постановка и фактическая фиксация.

Пока набор изменений находится в промежуточной области, git позволяет вам редактировать его по своему усмотрению (заменить поэтапные файлы на другие версии поэтапных файлов, удалить изменения из этапа и т. д.).

Сломанное время метафоры:

Рассмотрим сценарий, в котором вы вызываете движков, чтобы получить ваши вещи из старой квартиры в вашу новую квартиру. Прежде чем вы это сделаете, вы пройдете через свои вещи, решите, что вы возьмете с собой и что вы выбросите, упакуйте в мешки и оставьте в главном коридоре. Двигатели просто приходят, доставают (уже упакованные) сумки из коридора и транспортируют их. В этом примере все, до тех пор, пока движущие силы не получат ваши вещи, не будет организовано: вы сами решаете, что происходит, как его упаковывать и т. Д. (Например, вы можете решить, что половина ваших вещей будет выброшена до того, как движители даже попадут туда - это часть постановки).

С технической точки зрения, организация также поддерживает транзакционные коммиты, разбивая все операции на то, что может сбой (этап), а что не может (commit):

Фиксирование в git реализуется транзакционно, после того, как стадия выполнена успешно. Несколько шагов в стадии выполнения могут завершиться неудачно (например, вам необходимо зафиксировать, но ваш жесткий диск заполнен на 99,9999%, а git не имеет места для выполнения фиксации). Это не сработает при постановке (ваш репозиторий не будет поврежден частичной фиксацией), а процесс промежуточного этапа не повлияет на вашу историю фиксации (это не повредит ваш репозиторий в случае ошибки).

ответил utnapistim 7 J000000Monday14 2014, 16:45:05
17

Чтобы добавить к другим отличным ответам, вот название «этап» происходит от:

  

Я проверил словарь для значения этапа, и ни один из   значения были связаны с концепциями управления версиями.

По-английски «на сцену» может означать

  

организовать и принять участие (публичное мероприятие): сторонники UDF устроили   демонстрация в Софии

(из http://oxforddictionaries.com/definition/stage )

Название «постановка» для функции git происходит из этого значения: при постановке вы готовите и организуете фиксацию. Конечно, фиксация не совсем такая же, как производительность, но она является важным событием в VCS: -).

ответил sleske 15 22011vEurope/Moscow11bEurope/MoscowTue, 15 Nov 2011 13:15:53 +0400 2011, 13:15:53
4

В большинстве других систем контроля версий есть 2 места для хранения данных: ваша рабочая копия (папки /файлы, которые вы сейчас используете) и хранилище данных (где контроль версий решает, как упаковывать и хранить ваши изменения). В Git есть третий вариант: промежуточная область (или индекс). Itâ € ™ s в основном загрузочный док, где вы можете определить, какие изменения будут отправлены.

источник: http://gitready.com/beginner/2009/01/18 /заместитель стадирования-area.html

ответил mostafiz rahman 11 J000000Friday14 2014, 04:55:54
-1

«Этап» - это технически необходимый промежуточный этап в процессе проверки файла, а именно сбор изменений, которые необходимо добавить в репозиторий. Авторы Git решили сделать этот шаг видимым и постоянным, когда другие VCS делают его переходной частью процесса фиксации. Так что это просто вариант, который git дает вам, потому что он может так почему бы и нет?

Как я вижу это, главное, что git «stage» дает вам, что другие VCS не так, вы можете использовать его для проверки файла. Это фактически неназванный, несогласованный локальный коммит, который дает вам промежуточный шаг между выполнением всей вашей работы и постоянным фиксацией ее в репозитории и не имеющей ничего общего с вашим местным репо.

Например, допустим, что функция частично завершена. Он находится в стабильном состоянии, проходит все тесты и может вступить в производство, но у вас есть еще много работы. Вы можете выполнить все свои изменения, а затем продолжить работу над этой функцией.

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

Полностью можно полностью пропустить промежуточную область и просто использовать параметр -a для git commit, если вы не найдете промежуточную область полезной концепцией. Многие люди пропускают показ, и инструменты GUI обычно позволяют это.

ответил Old Pro 30 AMpWed, 30 Apr 2014 00:34:04 +040034Wednesday 2014, 00:34:04
-2

Мое понимание: предположим, что я создаю функцию входа в систему и требую 5 последовательных шагов для завершения. Итак, эта постановка поможет вам работать над такими шагами, как, например, сделанный с этапом 1-го этапа.
сделанные с шагом 2, теперь шаг 1 и шаг 2 оба правильны. беспорядок с шагом 3 без проблем checkout последний поэтапный шаг, который является шагом 2
так же, как только вы сделали все 5 шагов, что означает, что функция завершена, теперь выполните commit.

ответил palash140 25 PM00000020000002331 2016, 14:57:23

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132