1 背景
公司项目存放于 GitLab 服务器,想要加入该项目贡献代码
2 最佳实践
2.1 添加 SSH 公钥至 GitLab 服务器
- 生成 SSH 公钥
1
ssh-keygen -C “your email address”
- 添加公钥至 GitLab 服务器(不再赘述)
2.2 配置 git 全局(或工程)用户名和邮箱
1 | git config --global user.name “your user name” |
2.3 克隆仓库、创建个人分支、提交代码
克隆仓库,切换到将要 merge 进去的目标分支,在该分支下创建个人分支,在新建的个人分支下进行文件修改,将个人分支 push 到远程仓库并建立追踪关系(push 后加 - -set-upstream 参数):
1 | git clone repo_addr |
2.4 将个人分支 merge 到目标分支、打好 tag
Web 界面操作即可。
3 一些说明
执行完git clone
后,将拉取远程仓库的所有分支、各分支上的修改、tag 等全部内容,并将在本地的克隆仓库中创建 master 分支(自动与远程仓库的 master 分支相关联,远程仓库别名缺省为 origin),在创建个人分支前,务必先 git checkout
到将要 merged 到的分支(示例中为 develop),然后再进行分支创建操作,否则在 GitLab 服务器上进行 merge 操作时,可能会发生冲突与逆向 merge(develop 分支 merge 到了个人分支)。原因:
初次完成仓库克隆时,所在分支为 master 分支,此时若立即创建个人分支将是基于 master 分支创建的,而 master 分支与将要 merge 的分支很有可能是不同的,后续将做过修改的个人分支向 develop 分支进行 merge 时大概率会出现问题。当然,即使这样做了,也可能在进行 merge 操作时发生冲突与逆向 merge(从 develop 分支创建个人分支后,修改文件期间有人向 develop 分支 push 了新的提交)。