Как заставить git вытащить изменения для всех веток - PullRequest
10 голосов
/ 12 февраля 2010

Я работаю с git-репо, у которого есть пустой мастер и несколько веток. Когда я выполняю git pull, кажется, что он просто перетаскивает вещи для мастера, но не относится к ветвям.

Я чувствую, что должен сделать git checkout branch; git pull для каждой ветви, прежде чем смогу нажать. Есть ли команда или переключатель, который я могу использовать, который делает

Потянуть и применить изменения ко всем веткам и мастеру?

Ответы [ 2 ]

7 голосов
/ 12 февраля 2010

Я думаю, что нет доступной команды или переключателя из-за того, что делает git pull - он извлекает изменения с удаленного компьютера (например, git fetch), и они объединяют изменения с вашей текущей веткой (git merge origin/master или с другими вашими текущими ветками отслеживания) , Проблема не в первой части (на самом деле git fetch извлекает изменения для всех удаленных ветвей), а в слиянии - что нужно делать, когда возникают конфликты слияния? Вы можете объединять только рабочие копии, а не объекты git. А когда вы начинаете слияние, вам нужно прервать его или разрешить все конфликты и создать коммит слияния.

4 голосов
/ 12 февраля 2010

Ваша проблема не в git pull, а в git push. Попробуйте настроить git так, чтобы он передавал только ветку, за которой отслеживает текущая ветка (если применимо):

git config --global push.default tracking

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...