需求背景
我fork了别人的代码,但是别人的代码进行了更新,我自己的并没有更新,需要进行更新
解决方案
# 添加源fork的地址
git remote add upstream fork的原git地址
# 查看添加后的分支状态
git remote -v
# 从原始仓库更新同步代码
git fetch upstream
# 合并到本地代码
git merge upstream/master;
# 更新合并自己的远程仓库代码
git pull origin master
# 向自己远程仓库推送刚才同步源仓库后的代码
git push
# git merge upstream/master;可能会出现报错
报错信息
commit your changes or stash them before you can merge.
报错的原因
远程库中的更改和本地的更改有冲突
解决方案
第一种:stash
# 备份当前的工作区,从最近一次提交中读取相关的内容,让工作区保持和上一次提交的内容一致,同时将工作区的内容保存到git栈中
git stash
git pull
git stash
git stash pop:从git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个stash的内容,所以用栈来管理,pop会从最近一个stash中读取内容并恢复到工作区
git stash list:显示git栈内的所有备份,可以利用这个列表决定从哪个地方恢复。
git stash clear:清空git栈。
第二种:放弃本地修改,直接覆盖
git reset --hard
git pull origin develop:develop