Git---具体实例讲解Git用法以及提交PR

时间:2021-10-13 04:25:14

Git作为目前比较流行的版本控制系统,被各个互联网公司广泛使用着,使用git可以很方便地进行多人协作和版本控制,大多数时候我们也需要把别人的代码进行整合和修改,而不是简单的修改,这时就需要对一个项目进行修改,本文主要通过一个例子讲解下使用git常见命令以及如何提交一个pr。

1.fork一个项目
打开一个项目,点击界面右上角的的“fork”,就会在你自己的项目库里创建一个代码的拷贝, 本例中fork的项目是七牛的JS SDK项目 https://github.com/qiniu/js-sdk
Git---具体实例讲解Git用法以及提交PR

2.fork之后进入自己的主页后看到有了一份项目的拷贝,而且和原来的项目一模一样,注意提交pr是需要将原始项目fork到到自己的git库中修改的,不能直接git clone原始的项目修改提交。
Git---具体实例讲解Git用法以及提交PR
此时可以将这个项目给下载到本地的一个目录下,可以直接下载zip包或者使用git clone命令:
Git---具体实例讲解Git用法以及提交PR

3.在本地clone的目录中进行代码修改,查看文件修改情况的方法非常简单,只需要使用git status 命令就可以了。
Git---具体实例讲解Git用法以及提交PR

另外也可以运行git diff命令这样可以查看到所有文件的更改内容,其中,减号代表删除的部分,加号代表添加的部分。这里修改的是README.md文件,如果只想看这个文件的修改情况,运行git diff /Users/dxy/GitJsSdk/js-sdk/README.md即可。
Git---具体实例讲解Git用法以及提交PR

4.这个时候我们再运行git add .命令即可将所有的修改的文件进行添加。
关于git add命令,可以参考如下:
1) git add .表示所有修改的文件都进行添加,如果只添加某一个文件可以在add后面加上具体的文件名即可,比如本例可以直接使用下面的命令:
git add /Users/dxy/GitJsSdk/js-sdk/README.md
2) 有时候我们提交自己建的项目中想忽略某些文件夹可以建一个.gitignore目录,里面指定想要忽略的文件或目录,比如自己eclipse的项目可以设置忽略bin/和gen/目录,这样就表示把 bin 目录和 gen 目录下的所有文件都忽略掉,从而使用得它们不会加入到版本控制当中
3) 有的时候我们代码可能会写得过于草率,以至于原本正常的功能,结果反倒被我们改出 了问题。遇到这种情况时也不用着急,因为只要代码还未提交,所有修改的内容都是可以撤销的。
比如对于上面我们修改的README.md文件我们运行git checkout即可将修改的内容撤销到之前的状态。
git checkout /Users/dxy/GitJsSdk/js-sdk/README.md
4) 上面的方法只适用于那些还没有执行过 add 命令的文件,如果某个文件已经被添 加过了,这种方式就无法撤销其更改的内容。
Git---具体实例讲解Git用法以及提交PR
这种情况需要对已添加的文件先对其取消添加,然后才可以撤回提交,取消添加使用的是 reset 命令,用法如下所示:
git reset HEAD /Users/dxy/GitJsSdk/js-sdk/README.md
然后再运行一遍 git status 命令,你就会发现 README.md 这个文件重新变回了未添加状态,此时就可以使用 checkout 命令来将修改的内容进行撤销了。

5.运行 git commit -m "add some common problem"提交我们修改的代码,commit 命令的后面我们一定要通过-m 参数来加上提交的描述信息,没有描述信 息的提交被认为是不合法的。这样所有的代码就已经成功提交了。
Git---具体实例讲解Git用法以及提交PR

6.运行git push命令才能把本地修改的内容同步 到远程版本库上。或者运行git push origin master
其中 origin 部分指定的是远程版本库的 Git 地址,master 部分指定的是同步到哪一个分 支上,上述命令就完成了将本地代码同步到 这个版本库的 master 分支上的功能,git push origin master的意思就是上传本地当前分支代码到master分支。git push是上传本地所有分支代码到远程对应的分支上。
Git---具体实例讲解Git用法以及提交PR

7.此时再去我自己的GitHub代码库里面看就成功修改了,最后我们可以创建一个pr如下:
Git---具体实例讲解Git用法以及提交PR
然后可以等待CI检测通过即可:
Git---具体实例讲解Git用法以及提交PR