TEST 平时的开发借助于 Gitlab 进行代码的管理, 并定期同步代码到TFS上进行备份管理. TEST的代码提交流程遵循Github开源代码PR流程. 这里以Github为例,Gitlab使用机制类似.
TODO 这里的图后续需要替换为gitlab的操作界面.
首先git分为本地仓库(自己电脑中)和远程仓库(git官网自己的账号中),仓库可以理解为保存代码的地方,简单的说是在自己本地仓库修改代码,提交到自己远程仓库,提交pr后被接受后再会被合并到master。
将项目fork到自己的仓库中,可以在github的首页搜索到自己的想要的开源项目,我以flink为例:
进去后,点出fork,稍等片刻,此项目便会出现在自己的仓库中
进到自己fork的项目中,就能看到Clone or download按钮,如下,记下这个https链接。
通过上面的步骤,已经将远程仓库建好
需要将远程仓库clone到本地,此处省略安装本地github的过程,随便在哪个目录(项目存放的目录),右键打开一个Git base,执行一下git clone https://github.com//.git(使用上一步的https链接),等待命令完成,时间视下载速度而定,也许会比较慢,网上也有些可以提高git clone速度的方法,不防一试
$ git clone [email protected]:AliceDai/TEST.git
上面的命令完成后,当前目录下会多一个目录,我clone的是TEST,所以会多一个TEST目录,进到TEST目录中,试试跑一下git status试试,会提示现在是master分支。
$ git status
On branch master
Your branch is ahead of 'origin/master' by 2 commits.
(use "git push" to publish your local commits)
用git remote -v命令,可以看到此时只与自己的远程仓库建立了连接
$ git remote -v
origin [email protected]:AliceDai/TEST.git (fetch)
origin [email protected]:AliceDai/TEST.git (push)
还需要与上游建立连接,这里上游指的是一开始fork的那个项目源,以TEST为例,执行如下命令:
$ git remote add upstream [email protected]:TEST/TEST.git
$ git remote set-url --push upstream no_push
$ git remote -v
origin [email protected]:AliceDai/TEST.git (fetch)
origin [email protected]:AliceDai/TEST.git (push)
upstream [email protected]:TEST/TEST.git (fetch)
upstream [email protected]:TEST/TEST.git (push)
然后就可以在本地建立自己的branch进行代码开发了,建议在自己分支上修改,而不是直接在master分支修改
$ git checkout -b my_branch
balabala
可以先使用git status来查看有哪些文件被修改了
$ git status
$ git add *.cs // 将要提交的文件都加上
$ git commit -a -m "modify ***" //需要注意的是git commit只是把修改的代码提交到当前分支
$ git push -u origin my_brance // 将本地的代码提交到远处仓库
在你提交pr的时候,项目可能已经有了比较大的变更(每天都有世界各地的coder提pr),而你没有将分支保持与项目同步,所以有可能会导致check失败,pr被无视.
所以每次提交pr前,都要先从做代码同步。过程如下:
$ git fetch upstream
$ git checkout master
$ git merge upstream/master
$ git checkout -b my_branch
$ git rebase master
$ git push origin my_branch:my_branch
作者:不会撒娇的猫咪
链接:https://www.jianshu.com/p/6ac7e92bae90
来源:简书