Git是目前最先进的分布式版本控制系统,其底层文件验证采用的是SHA-1算法。
Git优势:
- 大部分操作在本地完成,不需要联网。
- 完整性保证。
- 尽可能的添加数据而不是删除或修改数据。
- 分支操作非常快捷流畅。
- 与linux命令全面兼容。
工作区、暂存区、本地库关系
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
使用场景
- 团队内部协作
- 跨团队协作
命令
git init
本地初始化 .git目录中存放的是本地库相关的子目录和文件,不要删除或修改。
git status
查看工作区、暂存区状态
git add
将工作区的内容添加到暂存区
git rm --cached
从暂存区移除文件
git commit -m "注释信息"
将暂存区的内容提交到本地库
查看历史记录
git log 查看历史提交
git log --oneline 查看历史记录的简洁的版本。
git log --oneline --graph 用 --graph 选项,查看历史中什么时候出现了分支、合并。
git reflog 可显示[email protected]{移动到当前版本需要的步数}
前进后退指定版本
- 基于索引值操作
git reset --hard 版本号 - 使用^符号(只能后退)
git reset --hard HEAD^
一个 ^ 符号表示后退一步 n个 ^ 表示后退n步 - 使用~符号(只能后退)
git reset --hard HEAD~3
数字为后退步数
reset命令三个参数对比
- –sort
仅在本地库移动指针 - –mixed
在本地库移动HEAD指针,重置暂存区 - – hard
在本地库移动HEAD指针,重置暂存区和工作区
删除文件并找回
前提: 代码提交到了本地库
git reset --hard [指针位置]
指针位置: 被删除文件存在的本地库版本号
比较文件
git diff
将工作区的文件与暂存区的文件进行比较
分支
在版本控制中,使用多条线同时推进多个任务。
好处
- 同时并行推进多个功能开发,提高开发效率。
- 各个分支在开发过程中,如果某一分支开发失败,不会对其他分支的功能有影响。失败的分支删除重新开始即可。
分支操作
git branch [分支名] 新建分支
git branch -v 查看分支
git checkout [ 分支名] 切换分支
分支合并
1.切换到接受修改的分支
git checkout [被合并分支名]
2.执行merge命令
git merge [新分支名]
冲突的解决
1.编辑文件,删除特殊符号
2.修改文件至满意的程度
3.git add [文件名]
4.git commit -m “”