正确使用git参与多人合作项目

写在前面

最近一直在GitHub上参与一个名为wuhan2020的开源项目,其中各个contributor是通过git flow实现多人协作开发项目的。

所以在这里记录一下如何正确使用git参与多人合作项目。

Git 操作

1、Fork 仓库

访问你要参与贡献的仓库A,并 Fork 到自己的账号下。

2、 clone 仓库

回到自己的 GitHub 主页,并找到刚刚 Fork 过来的A仓库,进入仓库主页, 将该仓库 clone 到本地,如:

# 将下面的 XXX 替换成你自己的用户名
git clone [email protected]:XXX/A.git
cd A

3、新建 branch

根据该分支的用途,起一个恰当的分支名称(例如:my-fix-branch),新建分支:

git checkout -b my-fix-branch master

注:非紧急修复,不建议在 master 分支进行开发修改。

4、修改内容,并提交

对相应文件做出修改,修改完成后,提交:

git add .
git commit -m "fix XXXXX"

提交时,尽量:

(1) 用一句话清楚的描述这次提交做了什么。

(2) 关联相关 issue,如 fix #1close #2#3

如果 commit 之后,又做了修改,可以使用 --amend 参数:

git add .
git commit --amend -sm "fix XXXXX"

5、同步上游仓库变更

push到远程仓库之前,要先同步上游仓库变更,因为可能有其他人先于你提交到上游仓库,防止冲突:

# 将下面的 XXX 替换成你自己的用户名
$ git remote add upstream [email protected]:XXX/A.git
$ git fetch upstream

若上游仓库有变更,需要先进行 rebase:

$ git rebase upstream/master

6、推送新分支到自己的远程仓库

$ git push -f origin my-fix-branch:my-fix-branch

7、提 Pull Request

在自己仓库的页面上提pull request 到上游仓库。

如果其他人 review 之后,需要再进行更改,就修改相关内容,然后执行以下操作,该 PR 将会自动同步该 commit

git add .
git commit --amend
git push -f origin my-fix-branch

8、如果你的代码合并时出现冲突时,你可以:

注:如果未出现冲突,则无需进行以下操作

  • 先同步上游仓库变更
git fetch upstream
  • 进行rebase:
git rebase upstream/master
  • 手动解决冲突内容,之后重新提交:
git add my-fix-file
git rebase --continue
git push -f origin my-fix-branch

9、当你的代码被合并进去以后,你可以:

  • 切回到 master 分支:
git checkout master -f
  • 保持本地 master 分支与上游分支同步:
git pull --ff upstream master

写在最后

其实不论是在公司写代码,还是在网上参与开源项目,git作为一种优秀的版本控制工具,是十分适合多人协作编写代码的。
而熟练使用git,也是一个程序员的必修课。
也希望本篇文章,能够给一些不会使用git参与多人协作的人,一些帮助吧。

你可能感兴趣的:(正确使用git参与多人合作项目)