git常用命令


今天介绍下版本管理工具:git的一些常用命令

git介绍

  • Git是目前世界上最先进的分布式版本控制系统
  • 可以有效、高速地处理从很小到非常大的项目版本管理

git原理(参考 )

  • 暂存操作会对先每一个文件计算校验和checksum(Git 使用SHA-1 算法计算数据的校验和,通过对文件的内容或目录的结构计算出一个SHA-1 哈希值,作为指纹字符串,该字串由40 个十六进制字符,并将此结果作为数据的唯一标识和索引),然后把当前版本的文件快照保存到本地Git 仓库中(Git 使用blob 类型的对象存储这些文件内容快照),并将校验和加入暂存区域
  • 使用git commit 新建一个提交对象前,Git 会先计算每一个子目录(项目根目录)的校验和,然后在Git 仓库中将这些目录保存为树(tree)对象。之后Git 创建的提交对象,除了包含相关提交信息以外,还包含着指向这个树对象(项目根目录)的指针,如此它就可以在将来需要的时候,重现此次快照的内容了
  • 分支:
    • Git 中的分支实际上仅是一个包含所指对象校验和(40 个字符长度SHA-1 字串)的文件,所以创建和销毁一个分支就变得非常廉价。新建一个分支就是向一个文件写入41 个字节(外加一个换行符)
    • Git 创建一个新的分支仅仅是创建一个新的分支指针
    • 有一个名为HEAD 的特别指针,运行git branch 命令,仅仅是建立了一个新的分支,但不会自动切换到这个分支中,所以当前我们仍然在master分支
    • git checkout testing,git仅仅是将HEAD指针指向了testing,几乎瞬间完成
    • 如果这时我们再次修改了文件,并提交(git commit ),仅仅是testing分支指向了最新commit ,而master仍指向在原来的commit
    • 使用git checkout master切换回master分支。git做了两件事它把HEAD 指针移回到master 分支,并把工作目录中的文件换成了master 分支所指向的快照内容
    • 在master分支我们修改文件再进行提交,这时项目提交历史产生了分叉

git常用命令介绍

  • git init: 初始化
  • git add :对修改保存暂存区
  • git commit: 提交改动,生成当前项目的一个快照
  • git config user.name “用户名” git config user.email “Email 地址” 设置用户名和邮件地址
  • git branch a: 创建分支a
  • git checkout a : 切换到分支a(先保存当前分支的改动)
  • git merge a: a分支合并到当前分支
  • git log: 查看整个版本历史
  • git pull: 获取远程分支的更新(别人的改动)
  • git push:自己的改动推到远端(方便别人获取)
    -

文章作者: Xudong Jiang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Xudong Jiang !
 上一篇
java虚拟机垃圾收集算法介绍 java虚拟机垃圾收集算法介绍
今天介绍下java虚拟机内的垃圾收集算法 分代收集理论 分代假设: 弱分代假说(Weak Generational Hypothesis):绝大多数对象都是朝生夕灭的 强分代假说(Strong Generational Hypothesis
2018-05-27
下一篇 
java-outofmemoryError异常整理 java-outofmemoryError异常整理
今天介绍java中的一些outofmemoryError 介绍 java虚拟机栈 StackOverflowError:如果线程请求的栈深度大于虚拟机所允许的深度 OutOfMemoryError:当栈扩展时无法申请到足够的内存 本地
2018-04-23
  目录