У меня возникли проблемы с синхронизацией моего локального репо с удаленным репо на GitHub, если и в удаленном, и в локальном репозиториях есть изменения. Так, например, если я еще не начал работать над функцией, перед запуском я могу выполнить синхронизацию, просто запустив

git pull origin master

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

git add .
git commit -m "message"
git pull origin master

Или

git stash save "message"
git pull origin master
git stash pop

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

Что я делаю неправильно ? Я имел в виду много документации по git, но просто не могу этого сделать.

Благодарность,

3
Kutay Demireren 28 Окт 2015 в 15:04

2 ответа

Лучший ответ

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

git stash
git checkout master
git pull

Ваш master синхронизируется с изменениями.

Теперь вы хотите продолжить работу над my_branch, поэтому вы

git checkout my_branch

И теперь вы должны stash pop внести изменения:

git stash pop

Если конфликтов не обнаружено, слияние будет работать автоматически. В противном случае вам будет предложено их разрешить.

3
Maroun 28 Окт 2015 в 12:09

Настроить ветку так, чтобы она точно соответствовала удаленной ветке, можно за 2 шага:

git fetch origin
git reset --hard origin/master

Если вы хотите сохранить изменения текущей ветки перед этим, вы можете сделать:

git commit -a -m "Saving my work, for later use"
git branch my-saved-work

Теперь ваша работа сохраняется в ветке «my-saved-work» на случай, если вы решите, что хотите ее вернуть (или хотите просмотреть ее позже или сравнить ее с обновленной веткой).

0
Deepak Biswal 28 Окт 2015 в 12:11