Что за команда Git, чтобы получить все изменения из удаленного репо? - PullRequest
3 голосов
/ 12 апреля 2011

У меня есть репозиторий, разветвленный из удаленного репозитория. Я сделал некоторые изменения, удаленный репозиторий обновился, и теперь я хочу получить все изменения из удаленного репозитория, и мне все равно в моем локальном репозитории. Ранее я удалял свой локальный репозиторий, затем делал простой форк и клон. Должен быть лучший способ сделать это. Что за магическая команда?

Ответы [ 5 ]

4 голосов
/ 12 апреля 2011

Если я вас правильно понимаю, вы хотите выбросить коммиты в вашем местном филиале (если вы его сделали).Если это так, то вы хотите:

# fetch updated branch(es) from origin
git fetch origin

# reset, including your work tree, to origin's master branch
# make sure you have your master branch checked out first!
# and also that you don't mind throwing away local commits or
# uncommitted modifications
git reset --hard origin/master
1 голос
/ 12 апреля 2011

Некоторые предположения: master - это старая ветка, в которую вы вносите некоторые изменения. Теперь other - это новая проверка с пульта origin.

git fetch origin
git checkout -b other origin/master

С

git diff other..master

вы можете сравнить две ветви. И наконец с

git checkout other
git merge master

Вы объединяете их. Еще один полезный инструмент - cherry-pick , с помощью которого вы можете объединить только несколько интересных коммитов в ветку

git cherry-pick <commit>
0 голосов
/ 12 апреля 2011

(учитывая, что ваша ветвь имеет значение master, а пульт называется origin)

Сначала обновите ваш origin:

git fetch origin

Теперь, если вы не подтвердили со времени вашего последнего обновления, вы можете просто сделать это:

git rebase master origin/master

Если вы сделали несколько коммитов, эта быстрая перемотка вперед не будет работать. В этом случае вы можете сделать:

git branch -d master (to remove your local master branch)

git checkout -b master origin/master


Отличается до слияния:

Если вы хотите увидеть, что изменилось перед выполнением merge do:

git fetch origin (always to bring the changes from the remote)

git diff master origin/master

0 голосов
/ 12 апреля 2011

Простой способ - это ветвь, например:

git commit -m "All my latest stuff I don't care about"
git branch newstuff refs/remotes/origin/master 
git pull

И теперь у вас есть все ваши новые вещи.Конечно, это предполагает, что вы хотите сохранить старые вещи.

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