赞
踩
1、如果还没 git add file
使用该指令进行撤销: git checkout -- fileName
只能清空全部已修改的问题件, 但是对于新建的文件和文件夹无法清空, 必须组合下面命令;
$ git clean -d
2、如果已经git add file , 但是没有 git commit -m ""
撤销分两步操作:
a、git reset HEAD readme.txt
b、git status
c、git checkout -- file
从暂存区:
当我们使用 git add 命令添加工作区的文件到暂存区时,我们想要对这个暂存区里面的文件执行删除操作时,我们则使用 git rm --cached <file> 来修改暂存区目录(不修改工作区目录), git rm --cached <file> 相当于git add的一个逆过程。
示例:
a.使用 git status 命令 来查看 暂存区情况,可以看到这时暂存区是没有文件的。
b.当我们使用 git add命令往暂存区添加文件时,可以看到暂存区内容发生变化(新增加了 file.txt 文件)。
c.使用git rm --cached <file> 命令删除暂存区中的 file.txt 文件,可以看到暂存区中已经没有数据了。
所谓的暂存区仅仅是.git目录下的一个index文件罢了,这也是为了什么被称为index(索引)
当删除暂存区内容的时候,其实就是删除index文件中的内容,.git/objects目录中的内容不会被删除。
清空暂存区指令:rm
.git
/index 直接删除该文件夹即
3、如果已经git add file 并且已经 git commit ,那么回退版本办法是:
a、通过 git log 或者 git log --pretty=oneline 、git reflog
b、找到对应的commit id进行回退:git reset --hard 1094a
git
原理: git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,如下图所示,假设我们要回退到版本。适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。
具体操作:
1. 查看版本号:
可以使用命令“git log”查看,也可以在github网站上查看:
2. 使用“git reset --hard 目标版本号”命令将版本回退:
再用“git log”查看版本信息,此时本地的HEAD已经指向之前的版本:
此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧:
所以我们要用“git push -f”强制推上去,就可以了:
在github图形化界面上看,远程库的HEAD也已经指向目标版本:
.ignore
其实.gitignore
文件只会忽略那些没有被跟踪的文件, 也就是说ignore规则只对那些在规则建立之后被新创建的新文件生效. 因此推荐: 初始化git项目时就创建.gitignore
文件. du -sh *
在初始化git仓库的时候没有创建.gitignore
文件来过滤不必要提交的文件, 后来却发现某些文件不需要提交, 但是这些文件已经被提交了, 这时候创建.gitignore
文件忽略这些文件时, 发现ignore的规则对那些已经被track的文件无效.
————————————————
版权声明:本文为CSDN博主「慕城南风」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lovedingd/article/details/115011687
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。