这也是一个给开源项目提交 PR 的完整 Git 流程。
1. 本地配置
1
2
|
git config --global user.name "username"
git config --global user.email "[email protected]"
|
参考:GPG 验证提交
2. 克隆代码
- 首先 fork 原仓库
- 克隆 fork 的仓库代码
1
|
git clone https://github.com/yourname/django-xss-cleaner.git
|
1
|
git remote add upstream https://github.com/shaowenchen/django-xss-cleaner.git
|
1
2
3
4
|
git remote -v
origin xxx
upstream xxx
|
3. 日常开发
1
|
git checkout -b IntegratedBranch upstream/IntegratedBranch
|
非 master 分支集成,下面使用 IntegratedBranch 替换 master 即可。
1
|
git rebase upstream/master
|
1
|
git checkout -b feature_1 master
|
Coding
1
2
|
git add .
git commit -s -m "message"
|
这里如果忘记加 -s
,会缺少签名信息。可以通过 git commit --amend --no-edit -s
进行补救。
选择将自己的 feature_1 分支合并到原仓库的 master 分支
1
2
|
git add .
git commit -s -m "message"
|
- Rebase PR 中的 Commit 记录,仅留一条
进入交互模式后,合并之前的两个 Commit 记录,保留第一个 pick,其他改成 f 或 s 。多条 Commit 时,将 2 修改为相应数值。
由于远程已经有相关的 commit 记录,这里需要强制推送。
如果没有合并直接删除远端开发分支,会导致 PR 关闭。
1
2
3
|
git checkout master
git branch -D feature_1
git push origin :feature_1
|