来源: Python开发者
Git四个区:
工作区…暂存区…本地仓库…远程仓库
对应平时操作,可以理解为:
修改一个文件…add…commit…push
Git五个状态
未修改
最初未修改的状态,称作origin
,也就是每次Push都会用到的参数。
修改未暂存
git diff
:直接查看工作区变动,可以查到结果
git reset --hard
: 恢复
暂存未提交
git diff
无法发现差异,只能git diff --cache
来查看。
git reset
可以由暂存区返回工作区,然后git reset --hard
返回未修改
提交未推送
推送后,master的状态已经发生变化,git diff master origin/
master命令才能找到同origin状态的差异,其中origin/master
就是指远程仓库。
同理,撤销的方法为 git reset --hard
。
已推送
推送后,所有修改已经记录保存至本地和远程,不会再有差异。 而撤销的方法,是找回上一次(或者特定一次)保存的状态。具体命令如下
git reset --hard HEAD^ # 其中^ 表示前一次记录
git push -f # 强制推送至远程
总结:
五种状态四类操作是git的基础,有了git reset –hard,从此再也不用担心独立项目提交错误了~