最近在使用git往gitee上提交PR,发现对于git的使用以及提交PR的一些相关术语不大熟悉,通过网上查阅资料加上自己的实际动手操作在此进行整理本次学习收获。在此感谢提供解答的各位老师。
一、PR简介
PR(Pull Request):简单的说就是人A觉得另一个人B的仓库写的代码有问题或者可以修改提高啥的,但A不能直接去直接修改仓库的的源码(万一A写错了,源码没有备份不久完犊子了),所以A先复制一份(fork操作)B仓库中的源码,之后clone下来在A的本地修改,修改完后commit提交Pull Request给B(Pull Request上要写明修改了啥啥啥的,让B明白A要干啥)。B看到A提供的PR后发现A是对的便采纳了A的代码(merge)。
我觉得这里的Pull是一个计算机使用术语和Push相对应,和其本身的汉语意思拉一样,把我修改的东西接受进去的请求。
Branch: 在提交PR过程中有一个叫Branch(分支)的东西,这东西就和树枝一样,树枝主干为master(原始分支),分支名称可以自定义,A可以创建一个分支用来进行Pull Request,A的相关操作都在新建的分支上进行,Pull Request时请求将分支合并到master上。
我觉得Branch的目的是为了因为可能不止A一个人要进行Pull Request操作,可能还有C、D啥啥啥的,在不同的分支上进行操作有助于减少冲突,同时便于溯源。
二、git简介和使用
1.git简介
Git為分散式版本控制系統,是為了更好管理Linux內核而開發的。
Git可以把檔案的狀態作為更新歷史記錄保存起來。因此可以把編輯過的檔案復原到以前的狀態,也可以顯示編輯過內容的差異。
而且,當有人想將編輯過的舊檔案上傳到伺服器、覆蓋其他人的最新檔案時,系統會發出警告,因此可以避免在無意中覆蓋他人的編輯內容。
2.git的使用
这里只介绍部分使用。
-
安装
关于Git的安装请参考: Git 安装配置,或者其它博客。 -
配置
在本地寻找想要修改代码的文件,鼠标右击有一个Git Bash Here(Git GUI Here为互动界面),点击进去。
输入git config --global user.name "zrf编程小白" git config --global user.email niubi@qq.com
注 这里的
user.name
和user.email
自定义,如果提交PR需要签署CLA的邮箱,user.email
需要填写签署CLA的邮箱。 -
使用(Windows版)
找到B的代码仓库,点击fork,复制一份下来。下面拿Gitee界面举例子。
点击完fork后我们便可以得到以下界面(没有可以去自己的代码仓库找)
之后复制界面网址,在本地寻找想要修改代码的文件,鼠标右击有一个Git Bash Here(Git GUI Here为互动界面),点击进去。
输入代码cd user/git_clone # 如果文件位置不对,可以用cd命令进入想要存放的文件夹 git clone http:www.niubi.com # clone后添加网址
现在我们在文件所在位置便可以看到下载好的代码。如果需要更改则直接在本地下载好的代码上进行更改即可。
修改好后输入以下代码git add . git commit -m "添加commit说明" git push <远程主机名> <本地分支名>:<远程分支名> # 这个写起来比较复杂,简单操作是点击Git GUI Here,点击Push即可。
-
查看提交记录
git有一个功能便是记录提交记录,方便查看,输入git log
即可。
如果输入git log
后停在日志界面无法退出,按q键即可。