原文链接: http://www.cnblogs.com/NickQ/p/8882726.html

学习 Git的使用过程

初次使用

git config --global user.name "用户名"
git config --global user.email "邮箱"

Git 创建版本库

git init  //初始化一个空工程

git add <file>  //将文件添加到暂存区

git commit //添加注释
参数:
-am 添加和修改
-m 修改
--amend //更正最后一次提交。使用编辑器,中文可能乱码。
--amend -n "提交说明" //更正最后一次提交。不使用编辑器 eg:
git add file1.txt
git add file2.txt file3.txt
git commit -m "add 3 files." git status //查看状态 git push //将暂存区的内容推向远程。

Git master不断增长

Git 版本回退

git log  //查看历史记录

参数:
--pretty=oneline //简化打印 eg: git log --pretty=oneline 图形化查看:
git log --decorate --oneline --graph all git reset //版本回退 命令选项:
git reset --soft HEAD~
- 移动HEAD的指向,将其指向上一个快照。
git reset --mixed HEAD~ (默认选项 等同于git reset HEAD~)
- 移动HEAD的指向,将其指向上一个快照。
- 将HEAD移动后指向的快照回滚到暂存区。
git reset --hard HEAD~
- 移动HEAD的指向,将其指向上一个快照。
- 将HEAD移动后指向的快照回滚到暂存区。
- 将暂存区的文件还原到工作目录。 eg:git reset HEAD~
~ 表示上一级版本,~个数即为级数。HEAD~~ 也可以写为 HEAD~2 //HEAD~ 可以是ID号,这样做可以回滚到过去,也可以回滚到未来。

执行git reset 回滚命令。

回滚前,HEAD指针状态

回滚后,HEAD指针状态

Git diff版本比较

git diff //版本比较,比较暂存区(a)和当前工作目(b)中的文件。

git diff 快照ID1  快照ID2 //比较提交的两个历史快照。

git diff 快照ID  //比较历史快照。

Git 删除文件,重命名

删除过程:

1、将该文件从工作目录和暂存区文件,即取消跟踪。

2、修改HEAD~指针,将远程提交回滚。

3、重新提交。

git rm  -- <文件名>
注:如果文件名唯一,没有这样名字的,可以省略 -- 。该命令删除的只是工作目录和暂存区的文件,也就是取消跟踪,在下一次提交时不纳入版本管理。 git reset --soft HEAD~ 仅修改指针,回滚到上一次的状态。

重命名:

git ren/mv <旧文件名> <新文件名> 

Git 分支管理

分支是什么?



实际开发中的分支:

创建分支:
git branch <分支名> 切换分支:
git chechout <分支名> 图形化查看
git log --decorate --oneline --graph all 合并分支:
git merge <分支名> 解决冲突:
首先 git status //查看未合并的文件
打开这个文件,借助git添加的标记,修改文件。
然后用git add /git commit -m "" 命令,提交。

一个分支管理例程过程中,指针移动过程。

创建分支D后,切换到D分支,指针移动过程。

此文有借助廖雪峰老师的视频,为尊重原作者,在此给出原文链接。廖雪峰老师教程的链接

学习 Git的使用过程的更多相关文章

  1. 深入理解学习Git工作流

    http://blog.csdn.net/hongchangfirst/article/list/3 //可以看看 http://blog.csdn.net/hongchangfirst/articl ...

  2. [转]深入理解学习GIT工作流

    深入理解学习Git工作流 字数13437 阅读2761 评论3 喜欢70 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心 ...

  3. 深入理解学习Git工作流(转)

    个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心中的困惑迎刃而解,于是我将这部分资料进行整理放到了github上,欢迎st ...

  4. 深入理解学习Git工作流(git-workflow-tutorial)

    转载:https://segmentfault.com/a/1190000002918123#articleHeader11 人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协 ...

  5. 深入学习 Git 工作流

    原文  https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md   个人在学习git工作流的过程中,从原有的 SVN ...

  6. 学习Git的总结与体会

    学习Git的总结 blog 第一次学习Git是完全按照廖雪峰老师的教程学习的,学的过程中基本上没有遇到什么问题,但是自己实际操作就问题不断了. 首先,还是按照惯例,来膜拜一下廖雪峰老师精简的教程知识吧 ...

  7. 记录我开始学习 Git的路程

    工作半年多了,总觉得没学到什么东西,于是乎找了个Git学习一下,感觉还蛮厉害的样子.为此记录下我的路程 2015,11,26 更新 前面的路都挺艰难的,在官网下载msysgit网速几乎为0(心情千万只 ...

  8. [少数派]如何学习Git

    用玩游戏的方式学习 Git 目录 为什么要学习 Git 怎么学习 Git Learn Git Branching 其他学习资源 用游戏的方式来学习,是一种有趣而高效的方式. 从刚接触电脑时的打字练习软 ...

  9. 学习 Git 玩转 GitHub

    原文地址:学习 Git 玩转 GitHub 博客地址:http://www.extlight.com 一.基本了解 1.1 什么是版本控制系统 版本控制系统是一种记录一个或若干个文件内容变化,以便将来 ...

随机推荐

  1. Razor模板引擎 (RazorEngine)

    Razor模板引擎不仅在ASP.NET MVC中内置了Razor模板引擎,还有一个开源的RazorEngine, 这样以来我们可以在非ASP.NET MVC项目中使用Razor引擎,甚至在控制台,Wi ...

  2. 放弃setInterval-说说定时器

    上述事件循环机制的核心是:JS引擎线程和事件触发线程 但事件上,里面还有一些隐藏细节,譬如调用setTimeout后,是如何等待特定时间后才添加到事件队列中的? 是JS引擎检测的么?当然不是了.它是由 ...

  3. Elasticsearch 2.x.x版本如何安装bigdesk

    ES插件BigDesk安装 bigdesk支持的最新版本的ES是1.3.0 ... 1.3.x 然而想要在新版本ES上安装(2.x.x),项目中遇到过一些BUG,在ES在最新版本中有修复,所以采用了2 ...

  4. SpringBoot页面访问处理

    SpringBoot页面访问处理 1.介绍 Springboot推荐使用thymeleaf模板引擎搭载html页面实现jsp动态渲染效果,因此这里才会用该种方案进行. 2.集成步骤 引入thymele ...

  5. sqlite 用法整理

    转载:http://blog.csdn.net/zhaoweixing1989/article/details/19080593 先纪录到这,以后慢慢整理. 1. 在Android下通过adb she ...

  6. Linux文件系统检查错误

    我们的Linux系统在无法启动时候,通常需要进入单用户模式下进行修改一些配置文件,或调整一些参数方可.但是在进入单用户模式后,我们的/文件系统是只读模式,无法进行修改,那么这个时候我们就需要用到一条命 ...

  7. Idea中Git的使用和两种类型的冲突解决

    一.Git冲突解决 在idea开发工具中使用Git时,主要用到的快捷按钮如下五个:   这五个按钮的使用说明及在idea中如何配置和使用git可参考https://github.com/DayThin ...

  8. January 16 2017 Week 3 Monday

    In love, folly is always sweet. 恋爱中,干傻事总是让人感到十分美妙. Love can easily get us in over our heads, so it i ...

  9. xml-apis-ext.jar

    xml-apis-ext.jar,hightcharts导出图片是解决乱码需要用到的一个包

  10. HttpServletRequest的随手记

    request对象的三个主要的方法: getParameter(String name):获取请求参数名字对应的参数值.只获取一个.如果名字对应有多个参数值的话,那么只会获取参数数组中的第一个.比如一 ...