Pull Request的过程、基于git做的协同开发、git常见的一些命令、git实现代码的review、git实现版本的管理、gitlab、GitHub上为开源项目贡献代码
前言:
Pull Request的流程
1、fork
首先是找到自己想要pull request的项目, 然后点击fork按钮,此时就会在你的仓库中多出来一个仓库,格式是:自己的账户名/想要pull request的项目的名称
2、clone
通过运行命令:git clone git@github.com:当前账户名/要克隆的仓库名.git(反斜杠后面那个是新的仓库的地址),将该仓库克隆到当前的开发环境中
3、branch
1、确定分支
通过在终端运行命令:git branch -a 查看当前所在的分支,通常我们都是在查看分支后在进行代码的修改,这是一个好习惯
2、创建特性分支
在应用GitHub修改代码时,我们通常采用的策略是在主分支下面创建一个特性分支,在该特性分支下进行代码的修改然后通过该分支 执行pull request操作,通过命令git checkout -b work master(这其中work为你新建的特性分支,master为你当前所在的分支)创建新的特性分支然后并自动切换。
4、添加修改
1、修改工程
在刚刚新创建的分支下对fork下的工程进行修改
2、提交修改
首先使用命令:git diff查看修改的内容是否正确,然后使用命令:git add (要添加的文件) 向仓库中添加文件,之后在执行命令:git commit -m "对这次提交的说明"
3、创建远程分支
要从GitHub发送pull request, GitHub那一端中的仓库必须要有一个包含了修改后的代码的分支,所以需要创建一个与刚刚创建的特定分支(修改所在的分支)相对应的远程分支
执行命令:git push origin work1(这其中origin为当时fork远程主分支的名称, 一般默许认为是origin,work1为本地工作的特性分支), 然后执行:git branch -a进行查看是否创建成功
5、发送pull request
进入到自己的GitHub账户下面,并切换到创建的特性分支下, 然后点击create pull request后,确定没问题,填写相关内容,然后点击send pull request
1、基于git做的协同开发:
1、初始化项目:git clone 仓库地址(生成仓库文件)
可以对这个项目名进行重命名:git clone url name(项目名)
2、git pull origin master(dev...)合并别人推送的分支
3、rebase可以帮助将提交的记录整理成一条直线(可以选择不进行这一步)
4、创建自己的开发的分支,并切换到自己的开发分支进行开发
5、将需要和别人协作开发的内容推送至公开分支:git push origin serverfix
协作者:git fetch origin
抓取远程跟踪分支,本地是不会有这个分支的,可以当成是一个指针
git merge origin /serverfix 合并内容到自己的分支
git checkout -b serverfix origin/serverfix 创建并切换到serverfix,起点从origin/serverfix
6、跟踪分支:
git checkout --track origin/serverfix 跟踪该分支,git pull自动识别这个分支进行合并
重命名本地分支:git checkout -b sf origin/serverfix
7、git fetch 从服务器拉取本地没有的数据
8、删除远程分支:git push origin --delete serverfix
9、远程仓库托管网站:GitHub、码云、gitlab
2、git常见命令
1、git init -- 初始化
2、git add -- 从工作区添加到版本库中
3、git commit -m "" -- 从暂存区添加到分支
4、git status -- 查看状态
5、git log -- 查看版本库的日志
6、git reflog -- 查看所有日志
7、git reset -head -- 版本号切换
8、git stash -- 保存
9、git stash -- 将第一个记录从某一个地方重新拿到工作区(可能户产生冲突)
git stash list -- 查看某个地方存储的所有记录
git stash clear -- 清空某个地方
git stash pop -- 将第一个记录从某个地方重新拿回到工作区(可能会产生冲突)
git stash apply -- 编号,将指定编号记录从某个地方拿回到工作区(可能会产生冲突)
git stash drop -- 编号,删除指定编号记录
10、git branch dev -- 创建分支
11、git branch -d dev -- 删除分支
12、git checkout dev -- 切换分支
13、git merge dev -- 合并分支
14、git branch -- 查看所有的分支
15、git clone https:xx -- 从某个地方克隆内容
16、git add origin https:xx -- 起个别名
17、git push origin dev -- 添加到dev分支中
18、git pull origin master -- 从主分支中拉取代码
19、git fetch origin master -- 从仓库区获取内容
20、git merge origin/master -- 和网上下的master分支进行合并
ps:在new一个新的仓库的时候,默认的分支是master分支
开发的分支:dev
做代码:review
程序员自己的分支:自己定义
1、每个员工创建自己的分支
2、将自己的代码提交到自己的分支
3、由组长或者老大来做代码的review -- 代码提交到review分支
4、在提交到dev分支
5、最后在合并到master分支上
3、stach的作用以及相关的命令
git stash -- 将当前工作区所有修改过的内容保存到某个地方,当工作区还原到当前版本还未修改过的状态
git stash list -- 查看某个地方存储的所有内容
git stash clear -- 清空某个地方
git stash pop -- 将第一个记录从某个地方重新拿到工作区(可能会产生冲突)
git stash apply -- 编号,将指定编号记录从某个地方重新拿到工作区(可能会产生冲突)
git stash pop -- 编号,删除指定编号的记录
4、merge和rebase的区别
merge:
会将不同的分支提交合并成一个新的节点,之前的提交分开显示,注重历史信息,可以看出每个分支信息,基于时间点,遇到冲突手动解决,然后再次进行提交。
rebase:
将两个分支的提交结果融合成线性, 不会产生新的节点,更注重的是开发的过程,遇到冲突手动解决,然后在继续操作。
5、如何基于git实现代码的review
review:老板、小组长、领导
review的内容:审查代码的规范
流程:master
dev
个人分支
review
个人提交代码到review分支,审查完毕之后由领导合并到dev分支中
6、git如何实现v1.0 v2.0等的版本的管理
git tag --> 查看标签
git tag -l "v1.8" --> 查看1.8开头的所有的版本
git tag -a v1.0 -m "one" --> 创建标签
git show v1.0 --> 查看1.0的这个标签