Git每天1分钟系列——代码仓历史和删除记录

Posted Vax_Loves_1314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git每天1分钟系列——代码仓历史和删除记录相关的知识,希望对你有一定的参考价值。

历史

  • 查看仓库区的历史操作
git reflog

  • 历史版本的名称:在Git中,用HEAD表示当前版本,也就是最新的提交00c6c39,上一个版本就是HEAD^,再上一个版本就是HEAD^^,当然往上100个版本写100个^肯定就麻烦了,提供了一种简写方式为HEAD~100

对比

  • 在ide中编辑df_user/models.py文件,删除str方法
from django.db import models

class UserInfo(models.Model):
    uname = models.CharField(max_length=20)
    upwd = models.CharField(max_length=40)
  • 对比工作区和仓库区中某版本某文件的不同
git diff HEAD -- 文件名
例:
git diff HEAD -- df_user/models.py

  • 将上面的代码添加提交
git add df_user/models.py
git commit -m '删除模型类的str方法'
  • 在ide中编辑df_user/models.py文件,修改str方法
from django.db import models

class UserInfo(models.Model):
    uname = models.CharField(max_length=20)
    upwd = models.CharField(max_length=40)
    def __str__(self):
        return "%s" % self.uname
  • 将上面的代码添加提交
git add df_user/models.py
git commit -m '修改模型类的str方法为name属性'
  • 对比工作区和仓库区中某版本某文件的不同
git diff HEAD HEAD^^  -- df_user/models.py

回退

  • 回退历史版本到暂存区
  • 将df_user/models.py文件的更改完成添加、提交
git add df_user/models.py
git commit -m '修改模型类'
  • 查看当前的暂存区状态
git status

  

  • 现在,没有str方法的是当前版本为HEAD,有str方法的版本为HEAD^,将有str方法的代码恢复到暂存区
git reset HEAD^或版本号
例:
git reset HEAD^

  • 再次查看当前的暂存区状态
git status

  • 可以再将暂存区的内容恢复到工作区
git checkout -- df_user/models.py
  • 在ide中查看df_user/models.py文件,发现有str方法

删除

  • 在ide中将文件删除
  • 从工作区到暂存区提交
git rm 文件名
  • 从暂存区到仓库区提交
git commit -m '说明信息'
  • 示例如下
  • 在模块df_user下添加文件a.py,编写代码如下
if __name__=='__main__':
        print 'test a'
  • 将df_user/a.py的变更添加到暂存区,再提交到仓库区
git add df_user/a.py
git commit -m '创建文件a'
  • 在ide中将df_user/a.py文件删除,然后在暂存区删除
git rm df_user/a.py

  • 提交暂存区的记录到仓库区
git commit -m '删除文件a'

  • 提示:删除的文件一样可以恢复,只需要先从仓库区到暂存区,再从暂存区到工作区

以上是关于Git每天1分钟系列——代码仓历史和删除记录的主要内容,如果未能解决你的问题,请参考以下文章

Git每天1分钟系列——Git本地与远程服务器介绍

Git每天1分钟系列——Git建仓

Git每天1分钟系列——3分钟理解Git

Git每天1分钟系列——(手把手教会为止)Git项目分支搭建

Git每天1分钟系列——Git项目分组开发

git删除所有历史提交记录,只留下最新的干净代码