Мне трудно понять мерзавца, так как я не мог найти значение слов, используемых для действий. Я проверил в словаре значение «stage», и ни одно из значений не было связано с концепциями управления исходным кодом.
Что означает «этап» в контексте git?
Мне трудно понять мерзавца, так как я не мог найти значение слов, используемых для действий. Я проверил в словаре значение «stage», и ни одно из значений не было связано с концепциями управления исходным кодом.
Что означает «этап» в контексте git?
git add file.ext
для определенного файла илиgit add .
повлиять на все измененные и неотслеживаемые файлы. Файлы, которые были добавлены таким образом, называются «подготовленными», и они будут включены в следующий «коммит». Фиксация - это снимок вашей работы, созданный, например, с помощьюgit commit -m "I wrote something"
.Ответы:
Чтобы поставить файл просто подготовить его тонко для фиксации. Git с его индексом позволяет вам фиксировать только те части изменений, которые вы сделали со времени последнего коммита. Допустим, вы работаете над двумя функциями - одна закончена, а другая все еще требует определенной работы. Вы хотели бы сделать коммит и вернуться домой (наконец, 5 часов!), Но не хотели бы фиксировать части второй функции, которая еще не сделана. Вы ставите части, которые, как вы знаете, принадлежат первой функции, и делаете коммит. Теперь ваш коммит - это ваш проект с первой функцией, а вторая все еще находится в стадии разработки в вашем рабочем каталоге.
источник
Поскольку до сих пор все отвечали на это «формальным» способом, позвольте мне сделать это с помощью альтернатив, чтобы улучшить обучение силой метафор.
Таким образом, область подготовки выглядит так:
Это волшебно !
источник
Постановка - это шаг перед процессом фиксации в git. То есть фиксация в git выполняется в два этапа: подготовка и фактическая фиксация.
Пока набор изменений находится в промежуточной области, git позволяет вам редактировать его по своему усмотрению (заменять промежуточные файлы другими версиями промежуточных файлов, удалять изменения из промежуточной стадии и т. Д.).
Время сломанной метафоры:
Рассмотрим сценарий, в котором вы вызываете грузчиков, чтобы доставить ваши вещи из старой квартиры в новую. Прежде чем сделать это, вы изучите свои вещи, решите, что взять с собой, а что выбросить, упаковать в мешки и оставить в главном коридоре. Грузчики просто приходят, забирают (уже упакованные) сумки из прихожей и перевозят их. В этом примере все до тех пор, пока грузчики не получат ваши вещи, - это постановка: вы решаете, что куда идти, как упаковать его и так далее (например, вы можете решить, что половина ваших вещей будет выброшена до того, как грузчики даже доберутся до места - это часть постановки).
С технической точки зрения, подготовка также поддерживает транзакции, разделяя все операции на то, что может дать сбой (подготовка), а что не может (принятие):
Фиксация в git осуществляется транзакционно, после того, как подготовка прошла успешно. Несколько этапов подготовки могут завершиться неудачно (например, вам нужно выполнить фиксацию, но ваш жесткий диск заполнен на 99,9999%, а у git нет места для выполнения фиксации). Это не удастся подготовить (ваш репозиторий не будет поврежден при частичной фиксации), и процесс подготовки не повлияет на вашу историю фиксации (он не повредит ваше хранилище в случае ошибки).
источник
Подготовить файл - значит подготовить его к коммиту. Поскольку git предоставляет это действие пользовательскому элементу управления, он позволяет вам создавать частичные коммиты или изменять файл, ставить его, снова модифицировать и только фиксировать или возвращать к исходной модификации.
Постановка позволяет вам лучше контролировать, как именно вы хотите приблизиться к управлению версиями.
источник
Чтобы добавить к другим отличным ответам, вот откуда происходит название «этап»:
На английском языке «на сцену» может означать
(с http://oxforddictionaries.com/definition/stage )
Название «подготовка» для функции git происходит от этого значения: при подготовке вы готовите и организуете коммит. Конечно, совершить не совсем такой же , как производительность, но это важное событие в VCS :-).
источник
В большинстве других систем контроля версий есть 2 места для хранения данных: ваша рабочая копия (папки / файлы, которые вы используете в данный момент) и хранилище данных (где система контроля версий решает, как упаковать и сохранить ваши изменения). В Git есть третий вариант: область подготовки (или индекс). Это в основном погрузочный док, где вы можете определить, какие изменения будут отправлены.
источник: http://gitready.com/beginner/2009/01/18/the-staging-area.html
источник
«Этап» - это технически необходимый промежуточный этап в процессе проверки в файле, а именно сбор изменений, которые необходимо добавить в репозиторий. Авторы Git решили сделать этот шаг видимым и постоянным, когда другие VCS делают его временной частью процесса фиксации. Так что это просто опция, которую дает вам git, потому что может, так почему бы и нет?
На мой взгляд, главное, что git "stage" дает вам, чего нет в других VCS, - это то, что вы можете использовать его для проверки файла. Это фактически безымянная, некомментированная локальная фиксация, которая дает вам промежуточный шаг между выполнением всей вашей работы и постоянной фиксацией ее в хранилище, и вообще ничего не сохраняется в вашем локальном репо.
Например, допустим, у вас есть частично законченная функция. Он находится в стабильном состоянии, проходит все тесты и может быть запущен в производство, но у вас еще есть над чем поработать. Вы можете поставить все свои изменения и продолжить работу над этой функцией.
Позже у вас будет возможность просто зафиксировать то, что вы подготовили (и отправить его в удаленный репозиторий), или добавить новые изменения в вашу область подготовки, а затем зафиксировать это все сразу, или отменить только ваши новые изменения и верните рабочий каталог в состояние, в котором он находился во время внесения изменений.
Вполне возможно практически полностью пропустить область подготовки и просто использовать эту
-a
опцию,git commit
если вы не находите область подготовки полезной концепцией. Многие люди пропускают инсценировку, и инструменты GUI обычно также допускают это.источник
Насколько я понимаю, предположим, что я разрабатываю функцию входа в систему и требует 5 последовательных шагов для завершения. Так что здесь постановка поможет вам работать над шагами, как
это было сделано с шагом 1 стадии его.
сделано с шагом 2, теперь шаг 1 и шаг 2 являются правильными этапом его.
испортить шаг 3 без проблем оформить последний поэтапный шаг, который является шагом 2
точно так же, как только вы выполнили все 5 шагов, это означает, что функция завершена, теперь выполните коммит.
источник