zoukankan      html  css  js  c++  java
  • git学习笔记03-本地git常用操作及原理-文件增删改

    1、查看git状态 git status  这个可以告诉我们对git做了哪些操,比如增删改

    2、既然我们修改了东西,有的时候想看看修改了什么,毕竟我们的记忆力并不如电脑 git diff 文件名 (默认和暂存区比较、啥事暂存区后面说)

    3、修改了之后我提交了,我想看看提交的日志git log -- pretty = oneline  (后面这是格式化用的,可以不写)

    4、突然想起来我提交的这个有错误怎么办,我想恢复到之前的版本 git reset --hard HEAD^ ( HEAD^ 是之前一个版本, HEAD^^是之前两个版本 HEAD~100之前100个版本)

    然后你可以用cat 文件名 查看你的文件是不是恢复到修改之前了

    5、后来发现其实这个错误并不是错误,我还想恢复到刚才那个版本 ,那刚才提交的那个commitid是多少呢,用到git命令日志操作: git reflog 查一下

    (忽略上面那两个,是我后来截的图。add two files是我之前那个版本的前面有个7位数的commitid 复制下来)

    6、根据commiitid恢复到未来最版本   git reset --hard 7a363a0

    7、引用廖雪峰老师的:这是一个非常重要的概念

    版本库(Repository)

    工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

    Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

    git-repo

    我们把文件往Git版本库里添加的时候,是分两步执行的:

    第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

    第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

    因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

    你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

    提交之后就变成这样了。

    8、我又在我的文件上做了修改,改着改着我忘记我改了什么 我想看看和工作区和版本库的文件的区别 git diff HEAD -- 文件名

    9、发现我又弄错了,我想恢复到版本库的样子 此时

    我的文件还没有git add 提交到暂存区 我可以 git checkout -- 文件名

    我的文件已经git add 提交到暂存区 我要先 git reset HEAD 文件名 ,再进行上一步操作

    如果源文件已经提交了版本,你可以根据之前说的恢复上一个版本 git reset --hard HEAD

    10、删除文件 用linux 的rm 文件名来删除,那如果你删除了发现删错了,想恢复怎么办,直接git checkout --文件名 就恢复了 。

    如果你确实要删除这个文件,git rm 这些文件名,并且git commit就可以啦。

  • 相关阅读:
    Ecshop商品批量上传,内容编码错误 您尝试查看的页面无法显示
    php 数组转化成字符串,并原样还原回数组
    PHP函数 curl_setopt
    <javascript学习笔记> javascript 获得url里参数。
    <yii 框架学习> <转> 关于yii数据库添加新字段之后model类的修改
    <yii 框架学习> 清空数据表
    <javascript学习笔记>javascript 实现隔行变色
    <javascript学习笔记> javascript 检查输入内容的长度。
    <php 代码积累 数组相关>
    <yii 框架学习> yii 框架改为中文提示
  • 原文地址:https://www.cnblogs.com/wufangfang/p/6062793.html
Copyright © 2011-2022 走看看