您好,欢迎来到暴趣科技网。
搜索
您的当前位置:首页git图解。通俗易懂

git图解。通俗易懂

来源:暴趣科技网

git推荐看廖雪峰的那个教程。入门很快。但是毕竟有些不直观。这时候可以看一下这一篇图解。会有更深的理解。




此页图解git中的最常用命令。如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻。

基本用法

  • git add files 把工作目录中的文件加入stage缓存
  • git commit 把stage缓存生成一次commit,并加入commit历史
  • git reset -- files 撤销最后一次git add files,你也可以用git reset 撤销所有stage缓存文件
  • git checkout -- files 把文件从stage缓存复制到工作目录,用来丢弃本地修改

你可以用 git reset -pgit checkout -p 或 git add -p进入交互模式,也可以跳过stage缓存直接从commit历史取出文件或者直接提交代码。 

  • git commit -a 相当于运行git add把所有当前目录下的文件加入stage缓存再运行git commit
  • git commit files 进行一次包含最后一次提交加上工作目录中文件快照的提交,并且文件被添加到stage缓存。
  • git checkout HEAD -- files 回滚到复制最后一次提交。

约定

后文中以下面的形式使用图片: 

这张图片里显示最后5次提交,ed4是最新提交。 master分支指向此次提交,另一个maint分支指向祖父提交节点。

命令详解

Diff

有许多种方法查看两次提交之间的变动,下面是其中一些例子。 

Commit

提交时,git用stage缓存中的文件创建一个新的提交,并把此时的节点设为父节点。然后把当前分支指向新的提交节点。下图中,当前分支是master

在运行命令之前,master指向ed4,提交后,master指向新的节点f0cec并以ed4作为父节点。 

这样,maint分支就不再是master分支的祖父节点。此时, 或者  是必须的。 

Checkout

HEAD标识处于分离状态时的提交操作

HEAD处于分离状态(不依附于任一分支)时,提交操作可以正常进行,但是不会更新任何已命名的分支。你可以认为这是在更新一个匿名分支。 一旦此后你切换到别的分支,比如说master,那么这个提交节点(可能)再也不会被引用到,然后就会被丢弃掉了。注意这个命令之后就不会有东西引用2eecb。 但是,如果你想保存这个状态,可以用命令git checkout -b name来创建一个新的分支。 

Reset

Merge

merge 命令把不同分支合并起来。合并前,索引必须和当前提交相同。如果另一个分支是当前提交的祖父节点,那么合并命令将什么也不做。

Cherry Pick

cherry-pick命令"复制"一个提交节点并在当前分支做一次完全一样的新提交。 

Rebase

rebase是合并命令的另一种选择。合并把两个父分支合并进行一次提交,提交历史不是线性的。rebase在当前分支上重演另一个分支的历史,提交历史是线性的。

本质上,这是线性化的自动的 。 上面的命令都在topic分支中进行,而不是master分支,在master分支上重演,并且把分支指向新的节点。注意旧提交没有被引用,将被回收。

要回滚范围,使用--onto选项。下面的命令在master分支上重演当前分支从169a6以来的最近几个提交,即2c33a。 

同样有git rebase --interactive让你更方便的完成一些复杂操作,比如丢弃、重排、修改、合并提交。


因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoquwan.com 版权所有 湘ICP备2024080961号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务