辛星浅析git中的代码撤销与回退

1.回退到最近一次提交的状态使用 
git  reset  --hard   HEAD
命令,这里的--hard表示删除自从该次提交后所有的修改记录,未跟踪的文件除外,如果需要保留目前的修改,则执行git  reset  --soft  HEAD。

2.回退代码到某次指定的提交状态,我们使用git  reset  --hard  <hashcode>
命令,这里的hashcode是该次提交的哈希码。git没有办法回退单个文件到某次提交状态,如果确实需要这么做,那么应该先取得某次提交时该文件的内容,然后覆盖现有的这个文件。

3.撤销以暂存的文件使用 
git  reset  HEAD  <文件路径>

4.撤销以修改的文件使用  git  checkout  --  <文件路径>

5.撤销未跟踪的文件使用  rm  <文件或目录路径>   ,如果加上-rf参数表示删除目录内所有的内容

而git  clean  -dxf
表示清除所有未跟踪的文件,包括纳入ignored的文件,如果要保留ignored的文件参数,使用参数-df。

时间: 2024-08-04 17:02:11

辛星浅析git中的代码撤销与回退的相关文章

辛星浅析git中的submodule

有时候,我们需要将一些通用的部分抽取出来做成一个公共库,它可以给别的工程使用,而公共代码库的版本管理是比较麻烦的.我们可以使用git中的submodule来做到这一点. 1.添加 为当前工程添加submodule,命令格式是:git   submodule   add   仓库地址    路径 在添加完成后,在当前工程路径下会生成一个名为".gitmodules"的文件,它记录了子模块的信息,添加完成之后,将子模块所在的文件夹添加到工程中即可. 2.删除 删除submodule,我们首

辛星浅析git中的版本回退

首先需要说的就是commit  id,它和svn不同,git的commit id不是1,2,3...这种递增的数字,而是一个SHA1计算出来的一个非常大的数字,它用十六进制来表示,因为git是分布式的版本控制系统,所以就只能用这种方式了. 在git中,我们用HEAD表示当前版本,上一个版本就是HEAD^,上上个版本就是HEAD^^,如果我们前100个版本就是HEAD后面跟100个^,但是我们通常不这么写,我们通常写成HEAD~100. 而且我们回退使用git  reset命令,比如我们要回退到上

辛星浅析git中查看某个文件的历史

有时候我们在比对代码的时候,会看到一些改动,但是不清楚这个改动的具体内容的话,我们通常可以通过如下步骤来执行: (1)使用git  log来查看某个文件的变化,需要注意的是这里我们只关注某个文件的变化,而不是整个git库,否则就无从看起了. 我们在git  log后面接文件名即可,范例如下: [email protected]:/root/xin# git log --pretty=oneline MessageItem.java 27209385caf678abe878375a470f4edd

辛星浅析git blame的使用

git  blame可以显示该文件的修改.以及作者上次修改文件的内容.他不会告诉我们文件中被删除以及被替换的内容,要详细的知道,我们还需要配合git  diff的使用. 下面是我们在git中创建了一个aa文件,然后是三次commit提交,以及只属于工作目录的修改. 我们用git  blame来查看一下效果: $git blame aa ^2cae297 (xin 2013-06-02 17:56:14 +0800 1) The beginning is to learn git blame ^2

辛星浅析git init中的--bare选项,也就是裸仓库

通常如果一个仓库作为远程仓库使用的时候,我们初始化的时候通常是git  init  --bare,首先解释一下这个bare,它翻译成汉语即"裸的",他之会生成一类文件,用于记录版本库历史记录的.git目录下面的文件,而不会包含实际项目源文件的拷贝,因此该版本库不能称为工作目录(working  tree). 当不使用--bare选项时,就会生成.git目录以及其下的版本历史记录文件,这些版本记录文件就存放在.git目录下,而使用--bare选项时,就不再生成.git目录,而只是生成.g

辛星整理git中的tag

标签可以针对某一时间点的版本做标记,常用于版本发布. 1.列出标签. 使用git  tag可以在控制台中打印出当前仓库的所有标签. 使用git  tag  -l   通配符  可以搜索出符合当前模式的标签. 2.打标签. 通常标签可以分为:①轻量级标签.②附注标签.③签署标签. 轻量级标签是指向提交对象的引用.附注标签则是仓库中的一个独立对象. 创建轻量级标签不需要传递参数,直接指定标签名称即可. 创建附注标签时需要使用参数a,a是annotated的缩写,指定标签类型,后面跟标签名. 创建附注

辛星浅析Linux中的信号

要说Linux中的信号,不得不先提一下中断这个概念.中断是系统中对于异步事件的响应,也就是说某个进程可以在代码执行的过程中被打断了,它先去执行一段异常处理程序.中断可以分为硬件中断,也就是外部中断,它是由外部设备通过硬件请求的方式产生的中断.而软件中断,也就是内部中断,它是由CPU运行程序的一些错误或者执行内部程序调用的时候引起的一种中断. 在CPU的层面去看中断,是这样的一个步骤: ①中断源发出中断信号  ②CPU判断是屏蔽该中断以及现场保护③CPU查询中断向量表,找到相应服务程序的入口地址,

辛星浅析git reset和git revert

很多时候,我们有了误操作,这个时候就需要回退功能的出现,我们可以使用git reset和git  revert这两个功能. git  reset是指将当前head的内容重置,不会留任何痕迹.比如git  reset  --hard   HEAD~3会将最新的3次提交全部重置,就好像没有提交过一样.而--soft和--mixed.--hard会分别重置working  tree和index.HEAD. git   revert是撤销某次提交,但是这次撤销也会作为一次提交进行保存.

辛星浅析网站中的sitemap

所谓sitemap,通俗来说就是"网站地图",sitemap文件主要包含了网站中的有效连接,它会便于搜索引擎的抓取和收录,如果没有sitemap文件,蜘蛛就需要一个一个的通过我们网站中的超链接来进行抓取.有了sitemap之后,搜索引擎直接读取该文件就可以了,它可以让搜索引擎抓取我们的网页更加有效. 最通用的也是最简单的sitemap形式的文件,就是xml文件,我们在其中列出网站中的网址,以及关于每个网址的一些元数据.这些元数据通常是上次更新的时间.更新的频率.重要程度等等,它可以让搜