原文链接: 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. jdbc 块提取方式

    最近使用jdbc方式查询数据,保存为csv文件中.当然你可以在pl/sql中直接查出来,copy to excel就好了.但我想通过程序实现 1 @Test 2 public void test() ...

  2. 关于thrift的一些探索——thrift序列化技术

    thrift的IDL,相当于一个钥匙.而thrift传输过程,相当于从两个房间之间的传输数据. 图-1 (因为Thrift采用了C/S模型,不支持双向通信:client只能远程调用server端的RP ...

  3. TcpListener、TcpClient

    1.TcpClient using System; using System.Text; using System.Net.Sockets; namespace tcpclient { class t ...

  4. Redis设计与实现读后感

    看了一下时间,现在是2018年8月22日14:28,看完最后一页内容之后,我简短的停留了一下,任思绪翻飞. redis设计与实现大概看了有12天左右,12天前,我的心里很乱,整个人都处于一种焦虑不安的 ...

  5. windows系统的错误码

    https://blog.csdn.net/u011785544/article/details/51682290

  6. ZT 段祺瑞终生忏悔枪杀学生?

    段祺瑞终生忏悔枪杀学生?http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece76310528c315c4380146080955468d4e4 ...

  7. node-7.2.1 already installed, it's just not linked

    直接在terminal下运行以卸载node和nvm: sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,shar ...

  8. Sql的一些常规判断

    sql server中如何判断表或者数据库的存在,但在实际使用中,需判断Status状态位:其中某些状态位可由用户使用 sp_dboption(read only.dbo use only.singl ...

  9. 用jq给link和script标签加随机的版本号(兼容IE5)

    $("link,script").each(function(){ var t=Math.random().toFixed(4); /*var $tag=$(this).prop( ...

  10. List的 并集、交集、差集操作

    package com.zheting.collection.list; import java.util.ArrayList; import java.util.Arrays; import jav ...