Клонирование ветки без объединения основной ветки
Иногда я хочу иметь возможность вытащить из репо (через клон). Но когда я делаю это и затем переключаюсь на локальную ветвь для извлечения удаленной ветки, 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 означает выборка + слияние