git一些操作

先声明一点。。我真的不是只会用git pull,和git push。。。这里总结下git的一些基本使用方法

如何回复被删除的文件

git删除文件一般也就包含下列四种情况

  • 删除本地文件,但是未添加到暂存区。
  • 删除本地文件,已经添加到了暂存区。
  • 把暂存区的操作提交到了本地git库。
  • 把本地git库的删除记录推送到了远程服务器的github。

差不多平时我们接触的主要也就是这四类。下面用四个例子来针对上面四种情况来进行恢复操作。

删除本地文件,但是未添加到暂存区

这一种是我们经常遇到的一种情况。在操作git的时候,不小心把本地的文件给删除了。比如这样:
0_1466234157912_upload-16ec2425-2478-4ee9-8b63-e098b23d08b7
使用rm zone-resume.doc删掉之后:
0_1466234177084_upload-a16b1c1c-c25f-4ef0-8a3b-d865031fdc28
这时候我们应该怎么办呢?


恢复操作方法
这里使用git的一条指令git checkout zone-resume.doc来恢复操作

0_1466234582125_upload-4884d8fe-6fe7-4dfe-ab7c-9d409afd10e0


删除本地文件,已经添加到了暂存区(即已git add.)

0_1466234766204_upload-8334ca7a-608d-438b-b93b-18fc11b0ca25
这时候我们应该怎么办呢?

恢复操作方法

这里我们通过git status可以知道 我的简历已经被删除。而且已经通过git add .添加到了暂存区
如果此时要撤销操作。方法上面已经告知我们。
0_1466234962832_upload-dda64bcd-e844-451a-9a63-8c93052e3e23

我们这里使用git reset HEAD zone-resume.doc让其从”前线”暂存区退到”后方”,再用git checkout zone-resume.doc 让其恢复。
0_1466235163009_upload-c633d1ce-2519-43a7-bb8b-94ea0703553c


删除本地文件,但是已经提交到了本地git仓库(即已做git commit -am"xxx"操作)

还是之前那个例子:
0_1466235313766_upload-59a6fe30-8315-497d-ab0f-709f4f9269d2
这里我们可以看到。通过git status可以查看:他说xxxxxx by 1 commit 估摸意思就是有一个提交记录。

恢复操作方法

这时候如果要恢复就必须对git进行版本回滚了。

恢复方法

  • 1.通过git log查看git库的的提交记录.
    0_1466236061158_upload-b76dfdce-c2a5-4651-85c5-4ce73852a868
    这里可以看出,最近的一次提交就是我们刚刚的那次”acorn”
  • 然后直接用git reset --hard 7cbf603这里取错误提交版本之前的一个版本的前7位ID。进行回滚0_1466236317774_upload-3d274271-4d9f-4d54-9296-90389152746f
  • 这样文件就恢复了。0_1466236389862_upload-a395e765-7ab8-4fe7-af97-1cac9fb2d485

把本地git库的删除记录推送到了远程服务器的github。

还是之前那个例子:
0_1466236556621_upload-db11cd4b-ed5b-4e9e-bf9e-b074bdfd2d10
我们这时候发现。在github上面已经没有我的简历文件了。这时候应该如何恢复呢?


恢复操作

这里的方法还是和第三种类似

  • 1.先通过git log回去到提交记录
  • 2.然后通过git reset --hard 7位ID来回滚到上一次提交前面的一个版本
  • 3.然后通过git push 来同步git 线上仓库

但是我们这里git push的时候却报错了:
0_1466247506826_upload-c238d7d6-2abd-4f8e-8176-309a80b52b6e

解决办法
这里使用一个黑科技git push -f直接暴力提交就行。0_1466247847792_upload-847e3980-454d-453b-b91a-e12e9cb479d8

未完待续

关于 一些切换分支的指令 感觉都挺简单。这里就不详细总结了(主要还是人懒…..)