您的位置:首页 > 产品设计 > UI/UE

Git---通过一个具体实例详解Git常用命令以及提交pr(pull request)

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

1.fork一个项目

打开一个项目,点击界面右上角的的“fork”,就会在你自己的项目库里创建一个代码的拷贝, 本例中fork的项目是七牛的JS SDK项目 https://github.com/qiniu/js-sdk



2.fork之后进入自己的主页后看到有了一份项目的拷贝,而且和原来的项目一模一样,注意提交pr是需要将原始项目fork到到自己的git库中修改的,不能直接
git clone
原始的项目修改提交。



此时可以将这个项目给下载到本地的一个目录下,可以直接下载zip包或者使用git clone命令:



3.在本地clone的目录中进行代码修改,查看文件修改情况的方法非常简单,只需要使用
git status
命令就可以了。



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



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 命令的文件,如果某个文件已经被添 加过了,这种方式就无法撤销其更改的内容。



这种情况需要对已添加的文件先对其取消添加,然后才可以撤回提交,取消添加使用的是 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 参数来加上提交的描述信息,没有描述信 息的提交被认为是不合法的。这样所有的代码就已经成功提交了。



6.运行
git push
命令才能把本地修改的内容同步 到远程版本库上。或者运行
git push origin master


其中 origin 部分指定的是远程版本库的 Git 地址,master 部分指定的是同步到哪一个分 支上,上述命令就完成了将本地代码同步到 这个版本库的 master 分支上的功能,git push origin master的意思就是上传本地当前分支代码到master分支。git push是上传本地所有分支代码到远程对应的分支上。



7.此时再去我自己的GitHub代码库里面看就成功修改了,最后我们可以创建一个pr如下:



然后可以等待CI检测通过即可:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: