先声明一点。。我真的不是只会用git pull
,和git push
。。。这里总结下git的一些基本使用方法
如何回复被删除的文件
git删除文件一般也就包含下列四种情况
- 删除本地文件,但是未添加到暂存区。
- 删除本地文件,已经添加到了暂存区。
- 把暂存区的操作提交到了本地git库。
- 把本地git库的删除记录推送到了远程服务器的github。
差不多平时我们接触的主要也就是这四类。下面用四个例子来针对上面四种情况来进行恢复操作。
删除本地文件,但是未添加到暂存区
这一种是我们经常遇到的一种情况。在操作git的时候,不小心把本地的文件给删除了。比如这样:
使用rm zone-resume.doc
删掉之后:
这时候我们应该怎么办呢?
恢复操作方法
这里使用git
的一条指令git checkout zone-resume.doc
来恢复操作
删除本地文件,已经添加到了暂存区(即已git add.
)
这时候我们应该怎么办呢?
恢复操作方法
这里我们通过git status
可以知道 我的简历已经被删除。而且已经通过git add .
添加到了暂存区
如果此时要撤销操作。方法上面已经告知我们。
我们这里使用git reset HEAD zone-resume.doc
让其从”前线”暂存区退到”后方”,再用git checkout zone-resume.doc
让其恢复。
删除本地文件,但是已经提交到了本地git仓库(即已做git commit -am"xxx"
操作)
还是之前那个例子:
这里我们可以看到。通过git status
可以查看:他说xxxxxx by 1 commit 估摸意思就是有一个提交记录。
恢复操作方法
这时候如果要恢复就必须对git
进行版本回滚了。
恢复方法
- 1.通过
git log
查看git库的的提交记录.
这里可以看出,最近的一次提交就是我们刚刚的那次”acorn” - 然后直接用
git reset --hard 7cbf603
这里取错误提交版本之前的一个版本的前7位ID。进行回滚 - 这样文件就恢复了。
把本地git库的删除记录推送到了远程服务器的github。
还是之前那个例子:
我们这时候发现。在github上面已经没有我的简历文件了。这时候应该如何恢复呢?
恢复操作
这里的方法还是和第三种类似
- 1.先通过
git log
回去到提交记录 - 2.然后通过
git reset --hard 7位ID
来回滚到上一次提交前面的一个版本 - 3.然后通过git push 来同步git 线上仓库
但是我们这里git push
的时候却报错了:
解决办法
这里使用一个黑科技git push -f
直接暴力提交就行。
未完待续
关于 一些切换分支的指令 感觉都挺简单。这里就不详细总结了(主要还是人懒…..)