学习 Git的使用过程
原文链接: 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的使用过程的更多相关文章
- 深入理解学习Git工作流
http://blog.csdn.net/hongchangfirst/article/list/3 //可以看看 http://blog.csdn.net/hongchangfirst/articl ...
- [转]深入理解学习GIT工作流
深入理解学习Git工作流 字数13437 阅读2761 评论3 喜欢70 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心 ...
- 深入理解学习Git工作流(转)
个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心中的困惑迎刃而解,于是我将这部分资料进行整理放到了github上,欢迎st ...
- 深入理解学习Git工作流(git-workflow-tutorial)
转载:https://segmentfault.com/a/1190000002918123#articleHeader11 人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协 ...
- 深入学习 Git 工作流
原文 https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md 个人在学习git工作流的过程中,从原有的 SVN ...
- 学习Git的总结与体会
学习Git的总结 blog 第一次学习Git是完全按照廖雪峰老师的教程学习的,学的过程中基本上没有遇到什么问题,但是自己实际操作就问题不断了. 首先,还是按照惯例,来膜拜一下廖雪峰老师精简的教程知识吧 ...
- 记录我开始学习 Git的路程
工作半年多了,总觉得没学到什么东西,于是乎找了个Git学习一下,感觉还蛮厉害的样子.为此记录下我的路程 2015,11,26 更新 前面的路都挺艰难的,在官网下载msysgit网速几乎为0(心情千万只 ...
- [少数派]如何学习Git
用玩游戏的方式学习 Git 目录 为什么要学习 Git 怎么学习 Git Learn Git Branching 其他学习资源 用游戏的方式来学习,是一种有趣而高效的方式. 从刚接触电脑时的打字练习软 ...
- 学习 Git 玩转 GitHub
原文地址:学习 Git 玩转 GitHub 博客地址:http://www.extlight.com 一.基本了解 1.1 什么是版本控制系统 版本控制系统是一种记录一个或若干个文件内容变化,以便将来 ...
随机推荐
- redis3.2.8安装与简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的 ...
- js 数据格式化
//金额增加千分号formatPrice(123456.78) = 123,456.78 function formatPrice(val) { var parts = val.toString(). ...
- 【Leetcode】【Easy】Merge Two Sorted Lists .
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...
- C++的extern关键字
extern是一个声明,不是一个定义,A模块想应用B模块的一个函数或者变量,A模块包含B模块的头文件,并且在变量或者头文件前,加 extern,虽然编译的时候,找不到模块的定义,但是在连接的时候,会在 ...
- ArrayBlockingQueue详解
转自:https://blog.csdn.net/qq_23359777/article/details/70146778 1.介绍 ArrayBlockingQueue是一个阻塞式的队列,继承自Ab ...
- Windows Server 2012/2012 R2:安装和配置 SMTP 服务器
Windows Server 2012/2012 R2:安装和配置 SMTP 服务器 安装 SMTP 服务器 以下是安装 SMTP 服务器功能的步骤: 打开“服务器管理器”:单击键盘上的 Window ...
- 使用JQuery做一组复选框的功能。
之前做过复选框的功能,奈何笔记丢失,害的我又鼓捣了一番...还是博客园做笔记比较好. 假设现在有一个表格,每一行都有一个复选框按钮.在表头还有一个全选的复选框按钮. ①.当点击一个全选按钮时,下面的同 ...
- SOJ3266 Birthday
Time Limit: 1000MS Memory Limit: 65536 K Description Today is Windy's birthday. What can I say? Inpu ...
- 文件是数据(字节)流的抽象-为什么C++中会把文件操作抽象为fstream?
这不过是返祖罢了.正确的问题是为什么会把数据流抽象成文件. 设备-字节流-文件. 一切皆为文件,所有不同种类的类型都被抽象成文件(比如:块设备,socket套接字,pipe队列). 文件抽象为数据流一 ...
- 静态路由解决双外卡,PC做路由器的实现
1,曾经医院,有两个网卡,一个内,一个外,但都有网关(192.168.1.246. 192. 168.6.1) 这样同一时候开启就会出现网络不通. 当时并没有细究原因. 这次医院信息化项目上马,我学到 ...