git几乎天天用,但是各种教程介绍的非常繁琐,所以来总结一下,以github为例
参考
- github界面变动过,但基本结构就这样了,其他版本库都差不多
Used by: 展示了这个项目被 github 上其他项目使用的次数,例如图中的 React 是个知名的前端库,所以使用者众多;
Watch: 点击 Watch 后,相当于你就关注了这个项目,那么以后要是这个项目有更新,你就会收到提醒;
Star: 类似朋友圈点赞功能,你觉得这个项目不错,就可以给它点赞;
Fork: 拷贝一份项目到你自己的仓库,不过如果原仓库后面有更新,你自己的仓库不会自动更新代码,需要通过其他方式同步过来才行。
Issues: 当你在使用公共库发现了 bug 或者有疑惑的时候,就可以在 Issues 模块提出问题,等待仓库作者或者其他使用了这个仓库的开发者来解答;
Pull requests: Pull request 列表,Pull request 简称 “PR”,意思是向这个仓库提交代码合并请求;
描述: 之前创建仓库时填写的描述会展示在这里;
commits: 代码提交记录;
branches: 代码分支;
releases: 代码发布的历史版本可以在这里找到;
contributors: 仓库的贡献者,只要你向这份仓库贡献过代码,就会出现在这个列表里面;
颜色条: 仓库中所用到的各种代码语言占比;
Branch: 点击这里可以切换不同的分支,图中可以看到现在是 master 分支;
New pull request: 创建一个代码合并请求;
Clone or download: 使用 git clone 项目仓库,或者直接下载项目压缩包。
接下来,我会介绍上面其中几个功能的妙用和小技巧。
了解过github,下边就是git常用命令,在各种ide里也有插件可以直接使用git
#配置用户名和邮箱,还可以直接把公钥加到github里
git config --global user.name "username"
git config --global user.email "email"
#初始化版本库
git init
#把修改的文件添加暂存区
暂存区:有时候你一次性修改了许多文件,然而其实这些文件,有些跟需求 A 有关,
有些跟需求 B 有关,因为实际工作中大多数时候我们都是多个需求并行开发的,
明明是两个独立的需求,你一次就把所有修改的文件全部提交上去了,
那么就不能保证提交历史的清晰。所以这时候文件的选择就可以交给暂存区去做,
每一次提交都是一个完整的功能开发,保证提交历史干净清晰。
git add <path> #把指定的修改的文件添加到暂存区(常用)
git add . #添加所有刚修改过的文件
#将暂存区里的文件给提交到本地的版本库
git commit -m "message" # message是本次提交的说明,不加也行
#将本地版本库的分支推送到远程服务器上对应的分支
git push origin <远程分支名>
本地开发
- 一般先fork,再clone到本地,添加原项目地址
- 大多数情况下,在自己开发过程中,原项目也在不断的更新,所以要添加远程项目地址,方便随时和原项目代码保持同步
# 同步原项目代码
git remote add upstream https://github.com/xxx/.git
# 获取最新代码
git pull upstream master
#创建分支
# 大多数情况下,我们不会直接修改 master 分支,而是根据修改的内容新建分支,
比如你是想修改 bug 则可以创建一个 bugfix 分支,你是想新增特性,
可以创建一个 feature 分支,分支取名最好有意义,而且简洁,例如可执行如下命令:
git checkout -b bugfix
# 接下来我们就可以在新分支上修改代码,修改完成后提交 commit 到代码库。
# 合并修改
# 上面说过了,当你修改完成的时候,原项目代码可能已经更新过了,所以在这里,就需
# 要我们同步一次,不然到时候合代码可能会产生冲突而不允许合入。
# 首先切换到 master 分支,执行如下命令:
git checkout master
# 然后,同步最新的远程代码:
git pull upstream master
# 然后切回到 bugfix 分支:
git checkout bugfix
# 把 master 分支的最新 commit 合并到 bugfix 分支:
git rebase master
# 最后,就可以把现在的代码 push 到远端的 bugfix 分支了:
git push origin bugfix
最后,可以进入到你自己的远端项目主页,点击 New pull request 按钮,
然后选择你的 bugfix 分支和原项目仓库的 master 分支,提交申请,
等待作者进行代码 review 并合并,如果 review 不合格,作者会提示你修改,
按着作者的已经修改好后重新提交代码即可。