Хочу ли я клонировать мастер ветки происхождения прямо в затмение? - PullRequest
0 голосов
/ 12 марта 2020

Я новичок в Git и пытаюсь настроить проект в Eclipse через плагин git. Насколько я понимаю, я не хочу клонировать мастер-источник напрямую, потому что другие будут также работать с этим репо, но я должен создать ветку-мастер происхождения и клонировать это, это правда? Если так, что произойдет с моим локальным репо после того, как я верну свою ветку обратно в оригинал? Станет ли это мастером происхождения? Или каждый раз, когда я заканчиваю sh ветку, нужно ли мне снова go выполнять процесс создания новой ветки и клонировать ее в новое место на локальном диске, чтобы использовать в качестве локального репо?

1 Ответ

1 голос
/ 12 марта 2020

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

Репозиторий git - это просто набор файлов и каталогов. Хранилище хранится как remote , что означает, что оно находится в каком-то центральном месте, доступном для всех, кому вы хотите иметь доступ (например, GitHub).

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

Я также выложу очень основную информацию c git рабочий процесс / порядок операций здесь:

  1. You checkout копия удаленного хранилища на вашем локальном компьютере.
  2. Вы делаете некоторые изменения в файлах.
  3. Вы добавляете файлы в индекс (набор сделанных вами изменений), используя git add.
  4. Вы коммит изменения в локальном репозитории (сохранить изменения как новое состояние), используя git commit.
  5. You pu sh изменения в удаленном репозитории (перезаписать удаленный репозиторий) с вашими локальными изменениями) используя git push.

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

Теперь ветвь - это просто указатель на коммит , который вы сделали на хранилище. Ветви позволяют вам развиваться параллельно - коммиты, сделанные в одной ветке, являются исключительными для этой ветви, пока они не будут объединены (скопированы) в другую ветку.

Теперь, чтобы ответить на ваши конкретные c вопросы :

Q: Я не хочу клонировать мастер-источник напрямую, потому что другие также будут работать над этим репо, но я должен создать мастер-источник ветки, и клонировать это, это то, что true?

A: Не верно. Вы можете напрямую клонировать основную ветвь и вносить любые изменения, которые вы хотите, поскольку эти изменения не влияют на удаленный репозиторий. Однако, если вы работаете с функцией, рекомендуется внести эти изменения в новую ветку функции. Как только вы закончите разработку, извлеките последние изменения в ветке master из удаленного репозитория (в случае, если кто-то еще внес изменения в нее), объедините ветвь функций в мастер ветвь, чтобы скопировать ваши изменения, и pu sh изменения в основной ветке удаленного репо.

Q: Если так, что будет с моим локальным репо после Я сливаю свою ветку обратно в мастер-источник?

A: Ничего. После того, как вы изменили локальное копирование на удаленное, локальная копия остается неизменной и неизменной , Вы можете продолжать работать как обычно.

Q: Станет ли он мастером происхождения?

A: Зависит. Если вы sh изменения в вашей локальной ветке master, вы обновляете удаленную главную ветку этими изменениями. Если вы вносите sh изменения в локальную ветвь функций, вы обновляете удаленную ветвь функций своими изменениями, и удаленная основная ветвь (и все ветви, кроме вашей ветки функций) остаются неизменными.

Q: Или каждый раз, когда я заканчиваю sh ветку, нужно ли мне еще раз go выполнить процесс создания новой ветви и клонировать ее в новое место на моем локальном диске, чтобы использовать в качестве мое локальное репо?

A: Не совсем. Вам нужно всего лишь клонировать одну копию репо - вот где git действительно полезно. Вы можете переключаться между ветвями, используя git checkout, и вносить любые изменения в любое количество разных ветвей. Опять же, эти изменения носят только локальный характер, и вам необходимо отправить их sh на удаленный компьютер, чтобы увидеть их отражение в удаленном репо.

...