2012-01-10 3 views
0

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

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

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

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

Вы могли бы показать точные команды, которые вы выполняете, и что именно происходит не так? – rejj

+1

Согласовано. Нужен пример. Простое клонирование и изменение ветвей не должны вызывать автоматическую «интеграцию». – wadesworld

ответ

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 clone http://somewhere.com/something.git 
cd something 
git checkout experiment 

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

+0

позволяет вам использовать более короткий синтаксис для вашего нажатия и вытягивания без ввода имени удаленной ветви? – BuddyJoe

+0

@brunot Да, это так. – s4y

0

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

git fetch --all 

или

git fetch [remote] 

Я обычно просто открыть GIT графический интерфейс и щелкните пультами > fetch> [remote], а затем я использую

gitk --all 

, чтобы увидеть, что делается на удаленном отряде ГЭС.
Я могу слить, если захочу ... git pull означает fetch + merge

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