1.移除文件
第一步:
$ git rm <flie> #删除工作区以及仓库里面的文件 $ git rm <flie> -f #如果文件删除之前修改过并且已经存放到暂存区域,使用强制删除选项-f $ git rm -r <folder> #删除工作区以及仓库里面的文件夹 $ git rm --cached <file> #将文件从仓库删除,工作区的保留 $ git rm log/*.log #删除所有log/目录下扩展名为.log的文件
第二步:
$ git commit -m #"删除xxx"
第三步:
$ git push GitHub仓库url 分支名 #把Github仓库上的文件也删除
2.撤销修改
a. 撤消工作区的修改
$ git checkout -- file
b.撤消暂存区的文件
$ git reset HEAD <file> #将暂存区的文件撤销掉,回到未暂存的状态
c. 撤销仓库的修改
如果要修改上次git commit的说明,可以使用--amend修改说明。
$ git commit --amend -m"新的说明" #修改上次git commit的说明
如果上次的git commit 忘记提交了某些文件,可以先git add将忘记的文件添加到暂存区,然乎再使用--amend修改上次的git commit
$ git commit -m 'first commit' #第一次提交 $ git add tet2.txt #将漏掉的文件先add到暂存区 $git commit -m 'first commit' --amend #重新提交文件到仓库
上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。
3.版本回退
HEAD:当前版本
HEAD^:上一个版本
HEAD^^:上上一个版本
$ git reset --soft [commit id]:log被回退到commit id,暂存区文件内容回退到commit id。使用此命令修改commit message重新提交一次文件。
$ git reset --hard [commit id]:log被回退到commit id,工作区文件内容回退到commit id。
$ git reset --hard HEAD^ #返回到上一个版本 $ git reset --hard 1094a #返回到指定版本,1094a是指定版本的id
$git reset --soft HEAD^ #回退到上次git commit之前,git add 之后的状态 $ git status #此时,上次git commit的文件放到了暂存区,等待git commit
$ git commit -m "再次提交" #你可以git add新的内容,可以修改commit message,然后重新提交
4.删除指定commit记录
$ git log --oneline #找到要删除的记录commit id $ git rebase -i
在git-rebase-todo文件中将要删除的commit id前面的pick改为drop,wq保存退出。