前言
merge前的设定
-
step 1、进入到本地仓库的目录。
下面所有操作,如无特别说明,都是在你的本地仓库的目录下操作。比如我的本地仓库为
/from-liujuanjuan-the-craft-of-selfteaching
-
step 2、执行命令
git remote -v
查看你的远程仓库的路径:如果只有上面2行,说明你未设置
upstream
(中文叫:上游代码库)。一般情况下,设置好一次upstream
后就无需重复设置。 -
step 3、执行命令
git remote add upstream https://github.com/selfteaching/the-craft-of-selfteaching.git
把 xiaolai 的仓库设置为你的upstream
。这个命令执行后,没有任何返回信息;所以再次执行命令git remote -v
检查是否成功。 -
step 4、执行命令
git status
检查本地是否有未提交的修改。如果有,则把你本地的有效修改,先从本地仓库推送到你的github仓库。最后再执行一次git status
检查本地已无未提交的修改。git add -A
或者git add filenamegit commit -m "your note"git push origin mastergit status
注1:这一步作为新手,建议严格执行,是为了避免大量无效修改或文本冲突带来的更复杂局面。
注2:如果你已经在fork后的仓库提交了大量对 xiaolai 的仓库并没有价值的修改,那么想要pull request,还是重新回到本文最初的“最省事办法”吧。
merge 的关键命令
以下操作紧接着上面的步骤。
- step 5、执行命令
git fetch upstream
抓取 xiaolai 原仓库的更新:
- step 6、执行命令
git checkout master
切换到 master 分支:
- step 7、执行命令
git merge upstream/master
合并远程的master分支:
- step 8、执行命令
git push
把本地仓库向github仓库(你fork到自己名下的仓库)推送修改
如果担心自己不小心改了哪里,可以再次执行命令 git status
检查哪些文件有变化。这个操作仅是检查,不会改变任何状态,放心用。
现在你已经解决了fork的仓库和原仓库版本不一致的问题。可以放心向 xiaolai 发起 pull request 了。如果以上操作你花了不少时间,而 xiaolai 的仓库 又恰好更新了。很好,一次新的练习机会来了……
评论区