GIT的介绍就不多说了。这里只是简单的写些入门的操作。
重点介绍历史版本的查看和控制相关的操作。
一切从简,不讲大道理,只讲简单的操作。
原创文章,如有转载,请注明出处:http://blog.csdn.net/yihui823/article/details/6681214
以铜为镜,可以正衣冠;
以史为镜,可以知兴替;
以人为镜,可以明得失
我们要以旧版本为镜,可以知道自己的成长历程
进入git控制的目录,试试 gitk
(哇~有图形了啊)
呵呵,别激动哦。
我们简单的描述一个例子:
a)初始化操作
有两个文件file1.txt和file2.txt
1, 初始化的时候就有这两个文件
操作:
git init
git status
git add .
git commit -m “init version”
2, 在master分支上修改了file1.txt,并提交
操作:
(修改file1.txt)
git add file1.txt
git commit -m “change file1”
3, 然后新建分支banana,并切换到banana分支上
操作:
git branch banana
git checkout banana
4, 修改file1.txt和file2.txt,并提交。
操作:
(修改file1.txt和file2.txt)
git add file1.txt file2.txt
git commit -m “change by banana”
这个时候,我们可以输入 gitk,查看一下当前的版本情况。如下图:git-001
5, 然后,切换到master分支上,修改file2.txt,并提交。
操作:
git checkout master
(修改file2.txt)
git add file2.txt
git commit -m “change by master”
输入gitk,查看当前版本情况,如下图:git-002
b)发现问题需要查看历史版本
我们现在发现当前的版本有点问题,还不能提交到版本库。
1,我们需要从git commit中返回.
则输入:
git reset --soft HEAD^
解释一下,HEAD是当前分支的最新版本。^表示父节点。当前节点的父节点,就是上一次提交的版本。也就是标记为“change file1”的版本。
问为什么不是”change by banana”这个版本呢?不同的分支哦。”change by banana”是banana分支的最新代码,和master分支不同的。
这个时候输入
git status
看看,是不是显示file2.txt修改了没有提交呢。
2,我们需要从git add中返回
再仔细查看之后,我们发现file2.txt真的写错了,需要返回到git add之前的状态。
输入:
git reset -q file2.txt
这个时候,file2.txt就回到了解放前了。用git status查看一下,file2.txt是”change not staged for commit”状态。
3,回到没有做过的情况
我们最终确定,最后一次修改的file2.txt是无用的代码,我们需要废弃掉。
注意,这个操作不能恢复的哦。
git reset --hard
这个命令,不能指定具体的文件。是把当前的修改全部清除,恢复到最后一次提交的版本。
这个时候,用gitk查看一下:git-003
已经彻底回复到了“change file 1”的版本了。
4,直接回复到某个版本
我们现在切换到banana分支。
git checkout banana
然后用gitk看一下。可以看出,我们之前的操作,对banana分支一点影响也没有。现在我们需要把banana分支回复到初始状态,但是当前的改动的代码还是需要留着。我们可以看,init版本是当前版本的父节点的父节点。我们可以这么操作:
git reset --soft HEAD^^
然后用gitk看一下:git-004
最近的版本已经变成了init version了。所有的改动都是add未提交状态。
5,得到当前最新代码
最后。我们把file1.txt和file2.txt都删掉。我们需要从版本库中取得当前最新的代码。
很简单:
git checkout master
如果是要banana分支的最新代码,则:
git checkout banana
以上的操作,我们知道了如何查看版本分支,和如何回复到以前的版本。
分享到:
相关推荐
今天Git push的时候 fatal:remote error: You can't push to git://github.com/username/*.git Use git@github.com:username/*.git 看来我是没有权限push啊。 解决方法: git remote rm origin git remote add ...
问题描述: 在使用git 进行提交时, 出现上面这个报错, 导致...///Users/dianji/project/ccpay.h5/.git/index.lock是你的index.lock的目录, 通常直接复制报错信息里边的地址比较靠谱. 那这个index.lock有什么作用呢? 官
18年7月更新,清华镜像,完美解决 Yocto,Android fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle 错误,绕开GFW
快速开始(1)克隆仿真及其依赖项: git clone https://github.com/phetsims/assert.gitgit clone https://github.com/phetsims/axon.gitgit clone https://github.com/phetsims/babel.gitgit clone ...
专辑:http://download.csdn.net/user/ajlgl/album 百度云:https://pan.baidu.com/s/1dESLQY9 Git下载地址:https://git-for-windows.github.io/
Segment 选择滑动控件 做项目难免不了使用SegmentControl控件,系统的产品看不上,看上的系统实现不了,那就...还有可以滑动选择的游标尺子,swift和oc版本: Git:https://github.com/DanielYK/ScrollRuler.git
跳转Git下载 Git:https://github.com/DanielYK/SwiftRulerView.git 另外还有仿滴滴、ofo、易到做的广告弹窗 Git:https://github.com/DanielYK/AdAlertView.git 以及获取设备的标识符,UDID,IDFA,UUID等等 ...
专辑:http://download.csdn.net/user/ajlgl/album 百度云:https://pan.baidu.com/s/1dESLQY9 Git下载地址:https://git-for-windows.github.io/
git 命令: git clone https://github.com/bluetiger9/SmtpClient-for-Qt.git git clone https://github.com/bluetiger9/SmtpClient-for-Qt.wiki.git git clone git://github.com/schacon/grit.git git clone ...
本工程参考了糊涂岁月的《SylixOS入门指南--架设开发环境》,在windows10上实现了SylixOS集成开发环境下示例工程:可以帮助SylixOS爱好者获得SylixOS操作系统源代码、搭建SylixOS集成开发环境、编译及调试SylixOS...
git-for-windows.github.io, 用于 Windows的upcoming版本 2.x的网站 Windows 主页的Githttp://git-for-windows.github.io/开发git clone https://github.com/git-for-windows/git-for-windows.gi
svn+git实现离线提交并且不需要到处所有svn版本,速度超快非一般的感觉,超越git本身的git2svn功能。 使用本工具需要安装基础工具: 首先安装git msysgit:https://code.google.com/p/msysgit/downloads/list msysgit...
压缩包中有两种版本的git,mac和windows版本mac下的为git-2.15.0windows下的git- 2.15.1.2-64bit
Git-Repo:git services CLI实用程序要获取源代码:https://github.com/guyzmo/git-repo https://gitlab.com/guyzmo/git-repo https://bitbucket.org/guyzmo/git -repo问题:...:git services CLI实用程序要获取源代码...
tdriver git clone的文件,具体文件如下: git clone git://gitorious.org/tdriver/driver.git git clone git://gitorious.org/tdriver/sut_qt.git git clone git://gitorious.org/tdriver/agent_qt.git git clone ...
Gitit:一个基于 Markdown(及其他标记语言) Git 版本管理系统的 Wiki,使用 Haskell 语言编写。 官网:http://gitit.net Github:http://github.com/jgm/gitit 中文...
主要介绍了解决fatal:remote error:You can't push to git://github.com/username/*.git问题的办法的相关资料,需要的朋友可以参考下
今天首次使用VS Code的Git功能,翻遍了 所有中文教程,竟没有一个靠谱的。遂动笔写一篇。 请确保你安装了最新的VS Code.http://code.visualstudio.com/ 请确保安装了最新版的Git。https://git-scm.com/download。git...
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git - Downloads https://git-scm.com/downloads 官网下载太慢了, 等半天, 这里保存一份, 方便以后使用 这是Mac版本 git-2.23.0...
目前支援版本: 8.7.0 至 Release 下載 strings.json 取代檔案 Windows: %LOCALAPPDATA%\gitkraken\app-8.7.0\resources\app.asar.unpacked\src\strings.json Mac: /Applications/GitKraken.app/Contents/Resources/...