目录 1.什么版本回退 2.需要了解两个知识点 (1)HEAD是什么 (2)HEAD指针用法 3.git reflog命令介绍 1.什么版本回退 版本回退也可以叫回滚. 若修改过的文件,不仅添加到了暂存区,还提交到了本地版本库,还能撤销吗? 已经无法撤销修改了,但是可以回退到修改前的版本. 版本回退也是撤销操作的一种,但我更愿意和前两种撤销操作分开理解. 引用廖雪峰比喻: 你不断对文件进行修改,然后不断提交修改到版本库里,就好比玩RPG游戏时,每通过一关就会自动把游戏状态存盘,如果某一关没过去,…
目录 1.--soft回退说明 2.--mixed回退说明 3.--hard回退说明 4.总结 在Git中进行版本回退需要使用git reset命令. 以前面文章中的示例为例,当我准备在V4版本,回退到V3版本的时候,分支中的提交和工作目录中文件的状态,如下图所示: 我们分别执行了三种回退方式: git reset --soft HEAD^:温柔的回退. git reset --mixed HEAD^:中等回退. git reset --hard HEAD^:强硬的回退. (我们从英文中就可以看…
目录 1.Git的三种后悔药 2.revert命令原理 3.revert命令的使用 (1)移除某次提交的修改 (2)revert命令说明 1.Git的三种后悔药 在Git中后悔药有三种:amend.revert.reset. git commit --amend:新的提交覆盖上一次提交的内容. git revert:提交一个新的commit,来撤销之前的commit. git reset:直接回滚到指定的commit. --soft:只回退版本库,工作区和暂存区的内容不回退. --mixed(默…
git reset --soft commit-id命令:回退到指定版本.(soft:柔软的) 该命令仅仅修改分支中的HEAD指针的位置,不会改变工作区与暂存区中的文件的版本. 实现上是只做了一件事情,就是移动HEAD指针的指向,指向了指定的提交版本. 示例开始: 首先在版本库中的readme.txt文件中添加一行内容,并提交该内容.我们的目的就是要再回退到该版本. 1.查看本地版本库日志. # 1.使用git log查看历史版本记录 L@DESKTOP-T2AI2SU MINGW64 /j/g…
git reset --mixed commit-id命令:回退到指定版本.(mixed:混合的,即:中等回退.) 该命令不仅修改了分支中HEAD指针的位置,还将暂存区中数据也回退到了指定版本. 但是工作区中的版本仍是回退前的版本. --mixed参数是git reset命令的默认选项. 示例开始: 首先在版本库中的readme.txt文件中添加一行内容,并提交该内容.我们的目的就是要再回退到该版本. 1.查看本地版本库日志. # 1.使用git log查看历史版本记录 L@DESKTOP-T2…
git reset --hardcommit-id命令:回退到指定版本.(hard:强硬,严格的回退) 该命令不仅移动了分支中HEAD指针的位置,还将工作区和暂存区中数据也回退到了指定的版本. (提示:该命令慎用.) 示例开始: 首先在版本库中的readme.txt文件中添加一行内容,并提交该内容.我们的目的就是要再回退到该版本. 1.查看本地版本库日志. # 1.使用git log查看历史版本记录 L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/lear…
目录 1.git commit --amend 命令说明 2.使用场景 (1)场景一 (2)场景二 3.git commit --amend 命令原理 这是我们Git中的第三种后悔药. 1.git commit --amend 命令说明 git commit --amend 命令:也叫追加提交,它可以在不增加一个新的commit的情况下,将新修改的代码追加到前一次的commit中. 使用该命令的好处,是避免许多无用的提交. 说明: 如果自上次提交以来,你还未做任何修改(例如,在上次提交后马上执行…
目录 4.一次移除某几次提交 (1)git revert移除某几次提交的修改 (2)git revert 移除某几次连续的提交的修改 5.revert命令常用参数 6.git revert和git reset命令的区别 提示:接上一篇文章. 4.一次移除某几次提交 上一篇文章的演示中,只有两个提交需要 revert,我们可以一个个回退.但如果有几十个呢?一个个回退肯定效率太低而且容易出错. (接上面示例) 我们可以使用以下方法进行批量回退: (1)git revert移除某几次提交的修改 命令:…
在window下已经安装了git的环境 1.建立本地仓库 mkdir   test     #建立test目录 cd   test        #进入目录 git  init           #创建好了本地git仓库,会发现在test目录中多了一个.git目录,并且这个目录是隐藏的 示例: $ git init Initialized empty Git repository in F:/git-repo/test/.git/ init前 init后 2.提交文件到中转站和仓库(add和c…
在Git中,我们可以用 git log命令查看我们修改的历史记录 C:\Users\Administrator\Documents\GitHub\learngit [master]> git log commit 06da0ffc8ff902d1b7d55968dd2822a6e0cc7ac9 Author: Tryking <260119064@qq.com> Date: Thu Mar 10 14:29:22 2016 +0800 add World commit f4fa07feb…
目录 1.分布式工作流程 2.集中式工作流 3.分支工作流 4.GitFlow 工作流(最流行) 5.Forking 工作流(偶尔使用) 6.总结 1.分布式工作流程 与传统的集中式版本控制系统(CVCS)相反,Git 的分布式特性,使开发者间的协作变得更加灵活多样. 在集中式版本控制系统中,每个开发者就像是连接在集线器上的节点,彼此的工作方式大体相像. 而在 Git 中,每个开发者同时扮演着节点和集线器的角色.也就是说, 每个开发者既可以将自己的代码贡献到其他的仓库中,同时也能维护自己的公开仓…
1.Git和SVN的区别 (1)SVN(集中式版本管理系统) 集中式的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新. Subversion属于集中式版本控制系统. 好处: 每个人都可以一定程度上看到项目中的…
目录 1.Git版本库介绍 2.创建本地版本库 场景一:创建一个空的本地版本库. 场景二:项目中已存在文件时,创建该项目的本地版本库. 场景三:在GitHub网站上创建仓库,克隆到本地. 1.Git版本库介绍 每个Git版本控制系统的主机中,都可以包含若干个本地版本库,一般情况下一个本地版本库对应一个项目,用于对某个特定项目中的本地文件进行版本管理.其实,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除等操作Git都能跟踪到,以便任何时刻都可以追踪历史…
目录 1.查看详细的历史版本记录 2.简化显示历史版本记录 3.历史版本记录常用操作 (1)指定查看最近几次提交的内容 (2)以简单图形的方式查看分支版本历史 (3)翻页与退出 4.查看分支相关的版本历史记录 (1)查看指定分支版本历史 (2)查看所有分支历史版本 5.总结 6.拓展:git blame命令 通过git log命令可以查看详细的历史版本信息. git log命令非常强大而好用,在复杂系统的版本管理系统中扮演着重要的角色,这也说明git log命令在日常工作当中还是非常有用的. 例…
目录 1.删除文件说明 2.删除文件操作 (1)仅删除暂存区的文件 (2)完全删除文件 3.本文用到的命令总结 1.删除文件说明 在Git工作目录中要删除某个文件,首先要清楚该文件所处的状态. 若要是该文件未被Git管理,在工作区直接进行删除即可.(不演示) 但是,若该文件已经经过多次git add与git commit操作后,就必须要从已跟踪文件清单中删除(确切地说,是在暂存区中删除),然后提交. 可以用git rm命令完成此项工作,并连带从工作目录中删除指定的文件,这样文件之后就不会出现在未…
目录 1.Git分支简介 2.Git分支与SVN分支的区别 3.工作中为什么要使用分支 4.Git分支管理的好处 1.Git分支简介 几乎所有的版本控制系统都以某种形式支持分支. 使用分支意味着,你可以把你的工作,从开发主线上分离开来,然后在不影响主线的同时继续工作. 在很多版本控制系统中,这是一个略微低效的过程,常常需要完全创建一个源代码目录的副本.对于大项目来说,这样的过程会耗费很多时间. 有人把 Git 的分支模型称为它的"必杀技特性",也正因为这一特性,使得 Git 从众多版本…
原文://http://blog.csdn.net/wb09100310/article/details/47271555 1. 概述 搭建了Spring.NET+NHibernate的一个数据查询系统.之前没用过这两个框架,也算是先学现买,在做完设计之 后花了一周搭建成功了.其中,还加上了我的一些改进思想,把DAO和BLL之中相似且常用的增删改查通过泛型T抽象到了DAO和BLL的父类中,其DAO 和BLL子类只需继承父类就拥有了这些方法.和之前的一个数据库表(视图)对应一个实体,一个实体对应一…
导读 在这篇文章中,你将学到如何查看项目中的历史版本,如何进行版本回退,以及如何创建 Git 分支以便你可以大胆尝试而不会出现问题.快来试试吧. 在你的 Git 项目的历史中,你的位置就像是摇滚专辑中的一个片段,由一个被称为 HEAD 的 标记来确定(如磁带录音机或录音播放器的播放头).要在你的 Git 时间线上前后移动 HEAD ,需要使用 git checkout 命令. git checkout 命令的使用方式有两种.最常见的用途是从一个以前的提交中恢复文件,你也可以整个倒回磁带,切换到另…
现在,我们已经学会了修改文件,然后把修改提交到Git版本库,现在再次修改readme.txt文件如下:…
在这篇文章中,你将学到如何查看项目中的历史版本,如何进行版本回退,以及如何创建 Git 分支以便你可以大胆尝试而不会出现问题. 在你的 Git 项目的历史中,你的位置就像是摇滚专辑中的一个片段,由一个被称为 HEAD 的 标记来确定(如磁带录音机或录音播放器的播放头).要在你的 Git 时间线上前后移动 HEAD ,需要使用 git checkout 命令. git checkout 命令的使用方式有两种.最常见的用途是从一个以前的提交中恢复文件,你也可以整个倒回磁带,切换到另一个分支. 恢复一…
现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. Git is free software distributed under the GPL. 然后尝试提交: $ git add readme.txt $ git commit -m "append GPL" [master ] append GPL file changed, ins…
Git,是Linus花了两周时间用C写的一个分布式版本控制系统.牛人该怎么定义? 零.结论先行 倒叙总结一下: HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id. 使用命令 git reset --hard HEAD^回退到上一个版本 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本. 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本. 下面继续我们的学习: 1.G…
学习地址 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”. 1. 初始化Git仓库 创建空目录 $ mkdir learngit $ cd learng…
git版本回退有两种情况,一种是从本地版本库中(head区)回退到某个版本,可以用命令 git reset --hard head^ 或git reset --hard head~x ,head指的是当前版本,head^指的是回退到上一个版本,head~x,x为任意大于0的数字,表示回退到当前版本的前x个版本.(如果你从最新的版本库回退到某个版本的时候又反悔了还是想回到最新的版本库,可以用git reflog命令找到每次操作的id,然后用命令git reset --hard id可以回到对应的版…
一.分支 1.分支简单介绍 简单使用: 可以将git branch new_branch和git checkout new_branch两个命令合并成一个命令: git checkout -b new_branch.这个命令的意思就是创建一个分支并且切换到这个分支上.本地分支改名: git branch -m 原分支名 新分支名 2.合并分支merge 这个过程中,下一个版本会记录一个parent id,这个parent id就是前一个版本的commit id. 注意当我们在dev中更改文件之后…
在版本迭代开发过程中,相信很多人都会有过错误提交的时候(至少良许有过几次这样的体验).这种情况下,菜鸟程序员可能就会虎驱一震,紧张得不知所措.而资深程序员就会微微一笑,摸一摸锃亮的脑门,然后默默的进行版本回退. 对于版本的回退,我们经常会用到两个命令: git reset git revert 那这两个命令有何区别呢?先不急,我们后文详细介绍. git reset 假如我们的系统现在有如下几个提交: Git如何优雅的进行版本回退? 其中:A 和 B 是正常提交,而 C 和 D 是错误提交.现在,…
1.首先将本地仓库版本回退到自己想要的版本. git reset commit_id 2.将回退后的版本强制推送到远程仓库. git push -f origin master…
操作过程: 首先查看远程仓库版本,如下图所见,最近一次提交为2018-03-19 22:16:25 第一步:使用git log命令查看历史提交记录,选择要回退的版本号,commit后面一串字符,这里我们选择回退到commit 9d85ad9a…… 第二步:git reset --hard 9d85ad9a回退本地版本,并使用git log查看是否回退成功 第三步:git push -f强制回退远程仓库到当前版本 操作后查看远程仓库版本,发现2018-03-19 22:16:25的那次提交不见了,…
目录 1.Tree对象介绍 2.Tree对象说明 (1)初始化一个新的本地版本库 (2)创建一个树对象(重点) (3)创建第二个文件(重点) (4)将第一个树对象加入暂存区,使其成为新的树对 3.总结 (1)分析每个树对象的存储结构 (2)blob对象和tree对象(重点) (3)总结(重点) 4.问题 5.本文用到的命令总结 1.Tree对象介绍 接下来要探讨的 Git 对象类型是树对象(tree object),它能解决文件名保存的问题.tree对象可以存储文件名,也允许我们将多个文件组织到…
目录 1.为什么要创建用户签名 2.为什么要在Git中配置这些信息 3.创建用户签名的方式 4.总结 1.为什么要创建用户签名 作为版本控制系统的客户端,每台客户机对版本库的所有提交操作,都需要注明操作者的身份.所以客户机首先需要进行自我身份的注册,即创建用户.Git要求"用户名和Email"这两样信息是必不可少的. 也就是说再让Git干活之前,必须得做一个最小配置,要把参与项目开发的工作人员的user.name以及user.email进行设置. 配置签名的作用:只是区分不同开发人员的…