Управление локальными папками - PullRequest
2 голосов
/ 22 марта 2020

Я переключаюсь на git с другого источника управления. Основная проблема, которую я имею сейчас, это понимание ветвления. В другом управлении исходным кодом, если бы я хотел работать с другой веткой, я бы клонировал ее в другую папку. В git из того, что я вижу, дело не в этом. Работа ведется в одной папке для всех веток или я не прав?

Ответы [ 2 ]

2 голосов
/ 22 марта 2020

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

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

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

Да, ваш репо (со всей историей) находится в главной папке под .git/. Другие файлы в главной папке представляют текущую извлеченную ветку (рабочий каталог). С git branch или git branch -a вы можете увидеть, какая ветвь в данный момент извлечена. С git checkout <BRANCHNAME> вы можете переключиться на другую ветку. Это заменит файлы в вашем рабочем каталоге на файлы с указанным именем ветви.

Больше:

Лучше делать коммит чаще, чем нет.

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

Если вы не уверены, сделайте копию всей вашей папки. Да, на самом деле Git должен взять на себя эту роль, но это сделало мою жизнь намного проще, по крайней мере, для новичка.

Лучшая практика - коммитить сообщения с более чем одним словом;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...