1. GIT说明
1> git是分布式,或者说是去中心化的。表现为:
- 开发者的可以在本地使用git并完美的控制自己的版本,而无需与服务端交互;
- 开发者可以将本地库在某个服务端备份,这种情况类似SVN的模式;
- 不同开发者可以互相参考彼此的本地库,如A可以从B的本地库pull版本,也可把自己的本地库版本push给C,ABC三者本地库可以各不相同,但主题一致,这就有社区的感觉。
2> git与其它版本管理工具一样,在push代码时都可能会有冲突,而且冲突只能在本地解决后再push。
3>git与其它版本管理工具相比,最惊艳的就是分支手段,通过分支可以很方便的进行开发版本管理,而且分支切换效率让人震撼,比如本地两个不同的分支版本X和Y,二者代码差异比较大,通过git checkout Y从分支X切换到Y时,会发现,毫秒级的时间里,硬盘上的代码就从X分支全部变成Y分支。
2. 文件区域
上面有4个文件区域,如果只是在本地做版本控制,则不用考虑远程仓库。只对本地文件进行修改,影响的是工作区间;添加文件后执行git add,影响的是缓存区;只有commit后才会影响本地仓库;另外可以通过git reset回退代码。
2. 基本命令
类型 |
命令 |
描述 |
代码区域 |
git init |
在当前目录初始化一个空的git仓库 |
git clone https://github.com/ikexiao/he llo-word |
从远程主机克隆一个版本库。 注意冒号前面是协议名称,包括http[s],ssh,git,ftp[s]等。 |
|
远程仓库 |
git remote [-v] |
显示远程仓库,-v表示显示地址 |
git remote add origin ssh://software@172.16.0.30/~/yafeng/.git |
在本地仓库添加一个远程仓库 |
|
git remote rm origin |
删除一个远程仓库 |
|
文件增删改查 |
git add file |
添加文件到缓存区 |
git commit -m "comments" file |
提交文件到本地仓库 |
|
git push origin master[:远程分支名] |
将本地master修改推送到远程origin仓库的master分支 |
|
git pull origin master |
从远程origin仓库拉回代码到master分支 |
|
git checkout |
汇总显示工作区、暂存区与HEAD的差异 |
|
git checkout [--] . |
这条命令最危险!会取消所有本地的修改(相对于暂存区)。相当于用暂存区的所有文件直接覆盖本地文件,不给用户任何确认的机会! |
|
git checkout [branch] -- filename |
用分支暂存区的文件替换工作区文件 |
|
git reset -hard git reset -mixed git reset -soft |
版本回退方法。-hard回退后工作区、缓存区、本地仓库全部回退;-mixed会保留工作区代码; -soft会保留工作区和缓存区代码 |
|
分支 |
git branch [-v] |
列出当前所有分支的清单,当前分支前面会有个星号。 加-v选项能看到各分支最近一个提交信息 |
git branch branch-name git checkout -b branch-name |
创建分支; 创建并切换分支 |
|
git branch -d branch-name |
删除分支 |
|
git checkout branch-name |
切换分支,注意:切换分支后工作区的文件会随之切换。 |