一个懒癌患者的自言自语



初识git

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哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
 
 
图中左侧为工作区,右侧为版本库。在版本库中标记为 "index" 的区域是暂存区(stage, index),标记为 "master" 的是 master 分支所代表的目录树。
 
 
1.配置git
例子:
git config --global user.name "John Doe" git config --global user.email johndoe@example.com
--system系统配置 --global 用户配置
 
1.1常用配置
core.editor 配置默认编辑器
core.pager 配置分页器 也可以直接设置空窜 直接在一页显示
core.excludesfile 设置忽略文件
core.autocrlf 格式化与空白
注:如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF,Linux或Mac系统把core.autocrlf设置成input 来告诉 Git 在提交时把CRLF转换成LF,签出时不转换,这样会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。
 
 
2.git使用
2.1初始化仓库
git init
git init --bare 裸仓库(远程仓库)不包含源码,只记录版本库历史记录 无法执行add, commit, delete等
 
2.2添加文件 跟踪文件
git add
 
2.3查看状态
git status
git status -s
 
2.4查看文件修改
git diff
工作区和缓存区比较:git diff
查看缓存区和版本库的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff --stat
 
2.5 提交文件
git commit 参数 -a(为任何已有跟踪记录的文件执行 git add)-m(添加注释 不带-m会打开编辑器填写注释)
 
2.6 撤销
git reset HEAD
撤销已缓存(add)的文件: git reset HEAD -- 文件名
代码回滚到上个版本: git reset HEAD~ (回滚多个版本在~后面添加相应数字)
回滚到指定版本: git reset --hard 版本号(git log查看)
 
2.7 文件移除
将文件从版本库和你的硬盘中(工作目录)删除 : git rm 文件名
只移除缓存区文件:git rm --cached 文件名
 
2.8 文件重命名
git mv 文件名
工作机制 :git rm --cached a.txt; mv a.txt b.txt; git add b.txt
 
2.9 分支管理
Git鼓励大量使用分支开发,可有针对性的对不同环境和版本进行部署
查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d

About ME

about me

kevin

一个在it道路上蹒跚学步的人

心有多大,舞台就有多大,一直奔跑在自己的路上!

Contact ME