我和我的朋友正在GitHub上开展一个项目。
他最近将代码推送到我没有的repo,我已经编写了一些代码,但没有推送。意思是,GitHub上的repo有他的提交但是我的本地repo没有那个提交,所以它是一个提交背后。但我已经对当地的回购做了一些改变,我不想失去它。
现在我被卡住了,我不能在不删除他的代码的情况下推动,而且如果不删除我的更改,我就无法完成。那么如何保持这两个变化呢?我听说过合并,但我无法弄清楚如何得到他的提交并将其与我合并。
我如何保持我和他的变化?
答案 0 :(得分:1)
你可以拉动而不删除你的更改。幕后的git pull
等同于:
git fetch remote
git merge remote/branch
因此,您的更改将是安全的,并且将包括您的同事的更改。创建新的合并提交以合并分歧的工作副本。
如果您没有进行任何更改,git
通常会执行快进,这会将您的状态设置为其他人。 git
只有在安全的情况下才会这样做!
如果您尚未提交更改:提交或更新git stash
,git
将不允许您pull
,直到安全为止!
答案 1 :(得分:1)
您将更改提交到本地仓库。然后执行
git pull
将合并他的更改或
git pull --rebase
将在他的更改之后重写您的更改,就好像您之后已经写过它们一样。
当然,无论您选择何种策略,都有可能发生冲突,您必须解决。按照说明进行操作。
任何Git书都涵盖了这一点,其中一些可以在线免费获得。看看他们。