Как мне управлять конфликтами между локальным git и github - PullRequest
1 голос
/ 05 июля 2019

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

В видео лектор делает git pull, и он пытается получить файлы. Диалог получает детали, а затем говорит

Auto-merging hello.html

но мой на этом этапе говорит

error: Your local changes to the following files would be overwritten by merge:
        hello.html

В итоге я не смог толкнуть или потянуть изменения, пока не решил конфликт. Я закончил тем, что сделал

git stash
git pull
git stash apply --index

Есть ли какая-нибудь конфигурация, которую мне нужно применить к моему локальному git, чтобы он попробовал автоматическое слияние?

для ясности получаю

$ git pull
error: Your local changes to the following files would be overwritten by merge:
        hello.html
Please commit your changes or stash them before you merge.
Aborting
Updating 7ed9dbb..0525225

Erik@DESKTOP-TI7OP0E MINGW64 /e/gitrepo/webcourse (master)
$ git commit -m "save"
On branch master
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)

Changes not staged for commit:
        modified:   hello.html

no changes added to commit

1 Ответ

1 голос
/ 05 июля 2019

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

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

Это также возможно, как вы заметили, чтобы спрятать ваши изменения и применить их позже.Это также сделает ваше рабочее дерево чистым, что сделает Git счастливым.Какой выбор правильный, зависит от того, что вы делаете.Если ваши изменения логически принадлежат той ветке, в которой вы находитесь, и вы можете сохранить их прямо сейчас, тогда зафиксируйте их;если вы хотите поработать над этим позже или над другой веткой, то спрятайте его.

...