git使用

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