2016-09-21 3 views
2

Предположим, у меня есть две удаленные ветви, мастер и разработчик, и что мой локальный репозиторий находится в папке D:/Git_Project.Можно ли одновременно показывать все локальные ветви в проводнике Windows?

На git bash я перехожу в каталог репозитория и выбираю главную ветку, я создаю папку и файл внутри нее, фиксирую изменения, нажимаю ее на удаленную главную ветвь. Теперь я переключусь на ветку разработчика, и если я сейчас перейду к D:/Git_Project с помощью проводника Windows, я не могу видеть папки/файлы из главной ветви.

Теперь я знаю, что git сохраняет эти изменения под папкой .git и загружает/сохраняет их всякий раз, когда мы переключаем ветви. Но возможно ли всегда показывать обе ветви, каждая со своей собственной папкой? В основном имеется папка «Мастер» и «Разработчик» в разделе D:/Git_Project.

Я знаю, что могу «обмануть» и сделать все это в той же ветке и самостоятельно создать эти папки, но я бы потерял функции ветки git, если бы сделал это.

Причина, по которой я хочу, чтобы это произошло из-за того, что иногда, когда я работаю над каким-либо файлом в разработчике или любой другой ветке, я могу проверить конкретный файл из другой ветви, и мне очень неприятно всегда переключаться на ветку для открытия файла локально.

спасибо.

ответ

2

Вместо размещения репо непосредственно под D:/Git_Project, вы можете клонировать его под

D:/Git_Project/master 

Затем с git worktree (with Git 2.5+), вы можете извлечь развивать ветвь того же репо в

git worktree add ../develop develop 
D:/Git_Project/develop 

Таким образом, вам не нужно клонировать дважды (даже общие клоны не нужны здесь)

+0

Ой, хорошо - я не знаю, о 'worktree', вы меня б есть. –

+0

@DavidHeyman Да, я документирую worktree с мая 2015 года: http://stackoverflow.com/a/30185564/6309 – VonC

+0

Это работает отлично. Ответ @David Heyman более интуитивный, но в долгосрочной перспективе ваша идея кажется более эффективной. Спасибо! – Danyjex

1

Простейшим решением было бы клонировать репозиторий локально - создавать дополнительные каталоги для хранения «просмотр копий» каждой ветви и просто не проверять разные ветви для этих копий. git clone --local --shared /path/to/original /intended/path/to/copy, затем git checkout master в новом. Прополощите и повторите для любого количества дополнительных копий, которые вы хотите. Вам не нужно вставлять только одну копию для внесения изменений, но это, вероятно, поможет с организационной точки зрения.

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

См. Также: документы для git clone.

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