Вытащить удаленную ветку в локальное репо с другим именем?

112

Хорошо, я немного исследовал этот вопрос, но я не смог найти точного ответа, поэтому должен спросить.

У меня 2 пульта: origin и repo2.

Я бы хотел сделать что-то вроде

git pull repo2 master

Но это потянет главную ветвь репо2 к моему мастеру. Могу ли я указать другую ветку для моей локальной ветки?

Космин Атанасиу
источник

Ответы:

163
git checkout -b myBranchName repo2/master
KingCrunch
источник
20
Обратите внимание - вы должны пробежать git fetch remote2заранее, если еще не сделали. В противном случае вы можете увидеть> фатальный: невозможно обновить пути и одновременно переключиться на ветку myBranchName.
dman
Примечание - если вам нужно оттолкнуть, использовать git push repo2 myBranchName:masterпростое git pushне удастся
jaimedash
2
Что делать, если ветка уже существует? Я хочу обновить там код кодом из репо.
Джаред
@Jared Технически другой вопрос, но тоже легко возможный (и на самом деле это один из самых распространенных вариантов использования). Это немного зависит от того, что вы уже сделали. В большинстве случаев это просто git checkout my_branch && git pull --rebase( --rebaseзависит от вашего рабочего процесса). Если ветка еще не отслеживает удаленную, вам нужно выполнить git branch --set-upstream my_branch upstream/my_branchодин раз.
KingCrunch
4

Команда git pull- это удобная функция, которая выполняет git fetchи git merge. Если вы хотите получить ветки только с нового пульта ДУ, не пытаясь объединить их с какой-либо ветвью рабочей копии, вы можете просто использовать git fetch. Затем вы можете обратиться к, git branch -avчтобы увидеть все локальные и удаленные ветки и работать на любом удаленном устройстве по своему усмотрению.

Бен Джексон
источник