Клонирование ветки без объединения основной ветки

Иногда я хочу иметь возможность вытащить из репо (через клон). Но когда я делаю это и затем переключаюсь на локальную ветвь для извлечения удаленной ветки, git предполагает, что я хочу взять основную ветку и интегрировать ее. Как мне избежать этого? Я уверен, что могу достичь того, чего хочу, с помощью другой серии действий / команд.

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

обновление:
Я запускаю следующие команды на дополнительном компьютере, где я хочу работать только в экспериментальной ветке

git clone http://somewhere.com/something.git    
git branch experiment    
git checkout experiment   
git pull origin experiement    

2 ответа

Решение

Каждая ветвь должна указывать на какой-то коммит. Если вы ничего не указали, git branch указывает новую ветвь на том же коммите, что и HEAD.

Вы хотите, чтобы ветвь указывала на origin/experiment вместо:

git clone http://somewhere.com/something.git
cd something
git branch experiment origin/experiment
git checkout experiment

или же…

git clone http://somewhere.com/something.git
cd something
git checkout -b experiment origin/experiment

или, поскольку git достаточно умен, чтобы знать, что вы пытаетесь сделать в этом случае...

git clone http://somewhere.com/something.git
cd something
git checkout experiment

Все они будут делать то же самое (создайте новую ветку, указывающую на origin/experiment). Они также установят филиал, чтобы отслеживать origin/experimentтак что push и pull будут в и из этой удаленной ветви.

Если вы хотите получать ветки только с пульта или пульта, не объединяя ничего, вы можете просто сделать

git fetch --all

или же

git fetch [remote]

Я обычно просто открываю git gui и нажимаю "пульты"> "выборка" [[remote]], а затем использую

gitk --all 

чтобы посмотреть, что делается на удаленных ветках.
Затем я могу слить, если я хочу... git pull означает выборка + слияние

Другие вопросы по тегам