2017-01-09 2 views
0

Я совершенно новый мерзавцу, и просто попытался создать ветку с помощью командной строки:Git- как я могу проверить файлы филиала?

git checkout -b newbranch 

В филиале содержит копию файлов моего хозяина, в том числе HTML файла, некоторые связанные с JavaScript и CSS файлы и т. д. Мой вопрос: как я на самом деле «проверяю/загружаю» файл HTML (или любой другой файл внутри ветки, если на то пошло)? Я хочу отредактировать html-файл внутри ветки, чтобы он не влиял на главную ветку, но в то же время мне нужно иметь возможность физически обращаться к этому файлу внутри браузера.

Из того, что я понимаю, ветви в git фактически не существуют как дочерние папки в файловой системе, на которые я могу просто перейти. Извините за вопрос о новичке.

Спасибо,

+0

По умолчанию для вашего репозитория имеется только один рабочий каталог. Поэтому, когда вы проверяете 'newbranch', вы заменяете предыдущее состояние своего рабочего каталога (из ветви' master') на эту другую ветку. Если вы хотите, чтобы файлы с «master» вернулись, вам нужно снова переключиться. - Вы можете использовать несколько рабочих деревьев, хотя см. Второй ответ в связанном вопросе. По существу, вы делаете «git worktree add ../my-project-master master», чтобы проверить главную ветку в другую папку. – poke

+0

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

ответ

2

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

Теперь, когда вы используете checkout в вашей команде, которая будет переключатель вам ваш newbranch автоматически после того, как он создает один. Здесь вы можете редактировать любые файлы, которые вы хотите, и это не повлияет на вашу ветку master. Эти изменения будут ограничены только вашим newbranch.

Позже, вам необходимо также переключиться на master отрасли и объединить ваше newbranch как

--- I assume that you are currently on newbranch 

git add <MODIFIED_FILE_PATH/NEW_FILE_PATH> # Ref [1] 
git commit -m 'Your commit message'   # Commit your stacked files 
git checkout master       # Moves you to master branch 
git merge newbranch       # Merges your newbranch file changes to master branch 

Примечания [1]: Вам нужно заменить <MODIFIED_FILE_PATH/ NEW_FILE_PATH> с вашим буквальным путем к файлам, которые вы изменили или , созданные в вашем newbranch

+0

Таким образом, создание новой ветки фактически не создает копии всех файлов в главной ветви в файловой системе вправо? Физически я все еще работаю с одним набором файлов, за исключением того, что Git каким-то волшебным образом сохраняет копию оригинальных нетронутых файлов в памяти с помощью «мастера», к которому я могу вернуться, если захочу? –

+0

@ ксерокс Да. –

Смежные вопросы