实践总结
基本流程
fork主项目并clone到本地- 添加上游仓库,这个操作每个项目只要做一次,目的是将本地项目与主项目连接起来,可以保证本地项目的代码处于最新状态。
//查看上游仓库
git remote -v
//添加上游仓库(链接主项目)
git remote add upstream xxxxxx(上游仓库地址)
//如果添加错了,可以删除上游仓库再添加
git remote rm upstream
//最后再检查一下
git remote -v
成功结果如图:
- 为了确保后续PR方便(少解冲突、少
rebase),每次开发新功能都要新建一个分支,并且分支的代码要是最新的,这就需要每次都以最新代码为基础创建分支。
//抓取上游代码仓库的更新,让本地项目同步到最新状态
git fetch upstream
//这里假设newest分支是最新的,这时候就要从上游的newest分支切出新分支,
git checkout upstream/newest -b xxxx(新分支名)
//查看当前分支track对应的远端分支,如果是upstream就要进行下一步处理
git branch -vv
4. 变更新建分支对应的track
//此时该分支的track是连接在上游仓库的,也就是说直接push,会将代码推到主项目,这样做很不规范,
//会有未经审核的代码进主项目,所以要在origin中新建分支保存代码
git push -u origin xxx(新分支名)
//查看当前分支track对应的远端分支,如果是origin就没问题
git branch -vv
5. 开发完后,将代码推到origin,并且向主项目提出PR来合并代码。大概流程就是这样了,下面再讲讲常见问题。
常见问题
- 如果将本地修改误提交到主项目,重复进行revert和提交操作
git revert HEAD
git push origin/...
git revert HEAD
git push origin/...
2. 有许多零碎的commit需要合并成一个commit 参考资料
git rebase -i commit-hash(某次commit对应的hash)
- 在自己开发过程中,别人推了代码,造成主项目更新,自己正在开发的分支要实时更新
git pull --rebase upstream xxx(主项目最新分支)
后记
欢迎大佬指导,欢迎捉虫~