Поскольку вы, кажется, незнакомы с git в целом, я настоятельно рекомендую прочитать некоторые git руководства / учебные пособия ( вот одно , которое я использовал при первом запуске), которые знакомят вас с git концепции. Я постараюсь объяснить и здесь немного.
Репозиторий git - это просто набор файлов и каталогов. Хранилище хранится как remote , что означает, что оно находится в каком-то центральном месте, доступном для всех, кому вы хотите иметь доступ (например, GitHub).
Когда вы клонируете удаленное хранилище на вашем компьютере, вы создаете локальную копию . Изменения в этой локальной копии не отражаются на пульте, пока вы не pu sh эти изменения на пульте.
Я также выложу очень основную информацию c git рабочий процесс / порядок операций здесь:
- You checkout копия удаленного хранилища на вашем локальном компьютере.
- Вы делаете некоторые изменения в файлах.
- Вы добавляете файлы в индекс (набор сделанных вами изменений), используя
git add
. - Вы коммит изменения в локальном репозитории (сохранить изменения как новое состояние), используя
git commit
. - 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 на удаленный компьютер, чтобы увидеть их отражение в удаленном репо.