1.git概述
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
2.Git 与 SVN 区别
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。
Git 与 SVN 区别点:
-
1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
-
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
-
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
-
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
-
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
3.Git 指令
git init 初始化一个git仓库(之后该文件夹成为一个git仓库,本目录生成一个.git文件)
git add <file> 添加文件
git commit -m <message> 提交添加的文件(提交之后,文件才受控)
git status 查看版本库的状态
git diff <file> 比对文件的修改内容
git diff HEAD -- <file> 查看工作区和版本库里面最新版本的区别
git log 查看提交日志
git log --pretty=oneline 显示简化版的提交记录信息
git reset --hard commit_id 回退到某一个点(commit_id可以使用git log查看)
git reset HEAD 回退当前版本(撤销本地修改)
git reflog 查看历史操作命令
git checkout -- <file> 撤销工作区的修改
git reset HEAD <file> 撤销(unstage)暂存区的修改
git rm <file> 删除文件(后续可以通过reset撤销修改)
git branch 查看分支
git branch <name> 创建分支
git checkout <name> 切换分支
git checkout -b <name> 创建并切换分支
git merge <name> 合并某分支到当前分支
git branch -d <name> 删除分支
4.Git工作机制
工作区(working directory)
一个git仓库就是一个工作区(git init执行时所在的那一个文件夹)。简单理解就是平时直接编辑的那些文件
版本库(repository)
工作区有一个隐藏的目录.git,这个不算工作区,而是git的版本库。简单理解就是git内部的一个库,不用直接编辑。
Git的版本库里存了很多东西,其中最重要的就是成为stage的暂存区,还有masterr分支,以及指向master的指针HEAD。
对应解析:
git add实际上就是把文件修改添加到暂存区
git commit提交修改,实际上就是把暂存区的所有内容提交到当前分支。
来源:https://www.cnblogs.com/gc65/p/10622979.html