Android面向面试复习—git版本控制
1. 几个概念说明
工作区
项目存放的文件夹就是工作区。因为我们的所有的git操作都是在该区域进行的。
版本库
工作区中的.git文件夹,里面存放的是git仓库相关的信息,它不属于工作区,是Git的版本库。
暂存区(stage)
Git的版本库中包括通过
git add
添加到暂存区的代码,存放临时代码的地方叫暂存区。
通过一个图来看一下他们之间的关系。
2. 常用命令
git init
把当前目录变成Git可以管理的仓库
$ git init Initialized empty Git repository in /Users/michael/learngit/.git/
git add
把文件添加到仓库暂存区,执行成功不会有反馈,Unix的哲学:没有消息就是好消息。
$ git add readme.txt
git commit
把暂存区的代码提交到仓库中,-m后跟的是提交代码的描述
$ git commit -m "wrote a readme file"
git diff
查看本地文件和代码库中文件的差异,后跟文件名
$ git diff readme.txt
git status
查看当前仓库的状态,工作区是否干净,是否有文件待提交等。
$ git status
git clone
用命令从远程仓库克隆一个本地库
$ git clone git@github.com:xwh1230/learngit.git
git branch
切换分支
$ git branch dev
git checkout
创建分支
$ git checkout dev
3. 工作常用的工作流
- clone工作流(集中式工作流)
类似Svn的仓库模式,只有一个中心仓库,其他人把仓库克隆到本地,随意更改,但是在提交到中心仓库时,如果有冲突,push不会成功,需要修改后重新push。
2、 fork工作流
一个比较理想的分布式工作流。
1. 首先创建一个远程的中央仓库
2. fork一个分支到公共的远程仓库
3. 开发人员从公共的远程仓库clone到本地电脑
4. 修改代码后push搭配公共的远程仓库
5. 技术经理或者项目维护者把接收所有开发的代码提交,然后将提交过来的代码push到远程的中央仓库。