GitHub 使用最佳实践及 git 常用指令 | 青训营笔记

161 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的第 10 天

既然是程序员一定知道 GitHub,使用 GitHub 大概率会涉及团队协作,那么如何提高团队协作效率,做好代码版本控制呢?以下为我所经历过的一些实践。

名词约定:

  • 上游仓库,即团队协作的【共享仓库】,大家都用这份 basic 代码。它当然也是远程仓库,但为了区分本地代码的远程仓库,我们暂且把它叫做上游仓库。
  • 远程仓库,即你【自己的】和本地仓库一致的【远程仓库】。
  • 本地仓库,clone origin 到【本地的仓库】。

主仓库建分支-分支合并

这种方式是大家 clone 的是 上游仓库 的代码,也就是共享仓库中的代码,clone 到本地之后,基于 master 新建分支,然后在分支上开发,开发完毕后提 PR 合并分支到 master 分支。

缺点:

  1. 多人协作容易拉错分支。
  2. 上游仓库分支过多不便管理(甚至可能会有 test 之类的测试分支)。

fork 主仓库代码到自己仓库-提 PR

fork 上游仓库 的代码到自己的 远程仓库,此时自己的仓库中可以任意建分支,可以多任务建立多分支同时开发,开发完毕一个提 PR 到 上游仓库

优点:

  1. 便于多人协作,fork 到自己仓库后可以任意建分支,每人的仓库分支代码互不影响。
  2. 上游仓库分支清晰。

常用指令

git clone {repo address} 克隆远程仓库代码到本地

git checkout {-b} {branch} -b 新建并切换分支到 branch,git checkout branch 切换到 branch 分支,确保本地存在 branch 分支。

git add . 暂存当前目录下的所有文件

git status 当前项目文件状态(修改或删除)

git commit -m {message} 打包当前修改,记录提交信息

git push {name} {branch} 发送当前打包并记录提交信息后的代码到 name 远程仓库的 branch 分支,直接 push 默认是 origin 的当前本地分支同步的分支。

git remote -v 查看当前所有远程仓库

git add remote {name} {repo address} 一般用来添加上游仓库,做之后的同步用

git fetch {name} 同步仓库,那么 为远程仓库的 name,不写默认是 origin

git rebase {name}/{branch} 拉取某仓库的某一分支的代码到本地进行同步,可能会产生冲突,解决方法戳 《解决冲突》,解决好冲突就可以 push 了。