一.引言
- Git 是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
- SVN与Git的区别?
(集中式与分布式区别):
集中式是版本库集中存放在中央服务器,干活时就取得最新版本,干完活再推送到服务器。缺点是必须联网才能工作。
集中式中央服务数据丢失,会导致数据永久丢失。
而分布式版本控制系统,没有”中央服务器“,每个人都是完整的版本库, 互相即时修改,就能看到互相的即时修改情况。
相比于集中式,分布式版本控制系统安全性要高很多。一人损坏,不影响其他人干活。 - git开发中,建议使用一台电脑,充当”中央服务器“,方便数据交换修改。
- git拥有及其强大的分支管理。
二.配置与入门 (建议弱化图形界面,记住命令)
- 安装
- 自报家门
$ git config --global user.name "root"
$ git config --global user.email "[email protected]"
- 创建版本库
$ git init #初始化版本库,生成.git
- 添加文件到版本库
$ touch a.txt #生成文件
$ git add a.txt #添加文件到git版本库
$ git commit a.txt #文件交给版本库管理
i 进入编辑
shift zz 保存并退出
或者另一种书写方式
$ git commit -m "第二次修改" a.txt
也可以
- 仓库状态
$ git status #查看仓库状态
[红色:文件修改,未添加到版本库]
[绿色:文件添加到版本库,未提交]
[nothing to commit,working tree clean :版本库没有更新的文件]
- 查看git历史记录
$ git log #查看版本修改信息,由最近到最远
$ git log --pretty=oneline #显示风格,在一行中
- 回退版本
$ git reset --hard 一串版本id
ps:注意,最新的版本并没有消失,只要粘贴出来id就能回到各个版本!!!
$ git reflog #显示所有历史记录的版本号
$ git checkout xxx #回退到工作区最近一次(add前)
$ git reset head xxx #回退到暂存区最近一次(commit前)
$ git rm xxx #删除文件,并推送到暂存区
三.git的版本库说明
工作区 --> 暂存区 --git commit–>master主干(移动,依次master主干修改) <----head指针(指向显示的master)
.get文件夹 包含暂存区和master主干,所以它才是核心版本库
四.git的简单分支操作
$ git branch dev #创建dev分支
$ git checkout dev #选择dev分支
$ git checkout -b dev #结合上两步,创建dev分支,并切换至该分支
$ git checkout master #切回主干(先切回主干,再合并)
$ git merge dev #分支添加到主干中
$ git branch #查看其他分支
$ git branch -d dev #删除dev分支
- 有冲突的合并,注释一定要详细
$ git merge 分支名
手动修改合并后主干
$ git add
$ git commit -m "详细的合并修改信息"