基准
基准的命名有⼀个⾮常常⽤的三点命名法。
A:从⽤户(消费者)⻆度看到的发布出的标记数(Release)
B:从开发者⻆度看到的关键的版本(Version)号
C:从开发者⻆度关注的修改版本(Revision)号
版本(Version):初发布或再发布的“代码及其附属品”的组合,它应该是 可被完整编译或被认定为完整可⽤的。不同的版本表现出不同的功能特性。
修改(Revision):对于⼀个版本的修改,只做了代码设计的错误修正,对 于已经“附属品”中⽂档所描述的功能特性没有任何改动。
发布(Release):被批准的⾯向⽤户进⾏分发的版本。
Git
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
本地 Git 仓库的三个分区
- ⼯作⽬录(修改/没修过的⽂件) working directory
- 暂存区(暂存的⽂件) staging area
- Git 仓库(提交的⽂件) repo
Git 中⽂件⽣命周期
基本Git使用
配置⼀个 Git 仓库:
- Git init :创建 Git 仓库,让当前 ⽬录处于 Git 管理之下
- Git clone :将⼀个已经存在的 Git 仓 库克隆到本地
- Git config :对 Git 的基本配置进⾏ 设置(如邮箱、姓名)
初次使⽤时:
- git config --global user.name “your name”
- git config --global user.email “your email”
令配置被写⼊ ~/.gitconfig
创建仓库:
- 在当前⽬录下创建 git init
- 在指定的⽬录创建 git init <指定的⽬录路径>
- 创建⼀个 bare git 仓库 git init —bare myrepo.git
克隆仓库:
- 克隆本地仓库 git clone /path/to/repo.git
- 克隆远端仓库
git clone http://gitlab.inspurcloud.cn/WuHanU/slides.git - 通过 ssh 协议完成克隆
git clone git@gitlab.inspurcloud.cn:WuHanU/slides.git - 通过remote连接本地仓库和远程仓库
git remote add origin 远程仓库地址
添加和提交:
- git add <文件名>
- git commit -m “注释”
查看仓库状态:
git status
查看历史:
- 查看仓库提交历史:git log
- 查看仓库提交历史(近3次详情):git log -3 -p
- 查看仓库提交历史(逐⾏看):git log
–oneline --graph
Git 的多⼈协作 / 远程仓库
分⽀:
- 查看现有分⽀ git branch
- 创建分⽀git branch <分⽀名>
- 切换分⽀git checkout <分⽀名>
- 创建并切换到分⽀ git checkout -b <分⽀名>
- 删除分⽀git branch -d <分⽀名>
合并:
合并某分支到当前分支:git merge name
-
git merge --no-ff
-
git merge --ff-only
合并的默认⾏为:
- 只执⾏ git merge 时,如果可以 fast-forward,则 fast-forward ,否则进⾏ non fast-forward merge。
- 在 non fast-forward merge 过程中,会尝试合并修改, 如果发⽣不能⾃动合并的冲突,则需要⼿动解决冲突。
拉取和推送:
- 拉取更新不更新⼯作⽬录 git fetch
- 拉取更新并更新⼯作⽬录 git pull
- 从远端 origin 的指定 master 分⽀进⾏拉取
git pull origin master - 推动更新 git push
- 向远端 origin 的指定 branchname 分⽀进⾏推送
git push origin master
场景:中⼼化⼯作流
场景:功能分⽀⼯作流
本地与远程仓库冲突
- 先把远程的代码拉到本地的一个新的分支上
git fetch remoteName remoteBranch:newBranch - 查看新的分支和本地分支的区别(可以查看差别)
git diff newBranch - 将本地分支和新的分支进行合并
git merge newBranch [–allow-unrelated-histories]
注意:其中–allow-unrelated-histories是可选项,当报错“refusing to merge unrelated histories”时加上该选项就可以进行merge。
在进行pull操作时如果也报这个错误也可以加上这个选项。 - 进行push操作就可以
- 删除这个新的分支
git branch -d newBranch