Git学习笔记(五)---修改管理
来源:互联网 发布:淘宝卖家怎样优化标题 编辑:程序博客网 时间:2024/04/28 13:33
git的设计思想并不是管理文件,而是管理修改,什么是修改呢?新增一行,删除一行,更改某些字符,删了一些又增加一些,甚至创建一个文件都是修改。
下面有一个小实验来说明这个问题:
1.对read.txt增加一行,然后添加到暂存区:
发现有一个待提交的文件。
现在再次修改read.txt文件,修改什么你随意吧。
2.现在直接执行提交:
现在再查看一下状态:
你会发现还是有未提交的,说明第二次修改并没有被提交,这是为什么?
这是因为你第一次操作把文件放到了暂存区,而第二操作你并没有执行git add
命令添加到暂存区,git commit
只会是把暂存区的修改给提交了,第二次没有放入暂存区的修改并不会被提交。
如果你想提交第二次修改,你可以再执行一次git add
,把暂存区的两个文件合并后再执行git commit
,这样第二次修改就会被提交。
总之,每次修改如果不git add
到暂存区,执行git commit
是不会提交本次修改的。
那么怎么插销修改呢?
1.如果现在你编辑完文件发现有不对的地方,想要插销本次修改,那么,可以用git checkout -- file
可以丢弃工作区的修改:
可以看到,上面是我看了一下修改了什么地方,git提示我新加了一行,中间我用了撤销指令,然后再看文件,发现我上面添加的那一行没有了。
说明一下:
命令
git checkout -- read.txt
意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:一种是read.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是read.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git checkout -- file
命令中的–很重要,没有--
,就变成了“创建一个新分支”的命令,我们在后面的分支管理中会再次遇到git checkout
命令。
现在你如果已经添加到了暂存区,发现不太对,想要撤回暂存区的内容,该怎么做呢?
用命令git reset HEAD file
可以把暂存区的修改撤销掉(unstage),重新放回工作区:
我添加了文件,然后又撤回了,现在再看一下状态:
比较上面两张图不同的状态,你会发现我们把放到暂存区的文件又插销回来了,重新放回了工作区。
如果你已经提交到了版本库,那就只能用前面的所讲的版本回退功能了,自己去前面找吧。
如果我们错删了文件read.txt,那么怎么找回呢?
下面来举个例子:
1.如果我删除了工作区的read.txt文件:
如果你是误删的,怎么恢复?先来看一下状态:
因为我们的版本库还没有删除,git发现工作区与版本库不一致了,所以会提醒你read.txt已经删除,现在如果你想恢复的话,执行指令git checkout -- read.txt
:
你会发现这个文件又回来了。
但如果你就是想删除这个文件,并且在版本库中你也想删除它,那就用命令git rm
删掉,并且git commit
提交一下修改:
其实删除也是修改,好好消化一下修改的指令
- Git学习笔记(五)---修改管理
- 五、Git-管理修改
- Git学习笔记五:Git分支管理策略
- Git学习笔记(五) Git重置
- Git学习笔记(五) Git重置
- Git学习笔记三--管理修改、撤销修改、删除文件
- git 学习之管理修改
- Git学习笔记(撤消修改)
- Qt学习笔记(五) 布局管理
- Git学习笔记5(分支管理)
- Git学习笔记(七)---分支管理
- Git学习笔记(分支管理)
- Git学习笔记(标签管理)
- git的学习笔记(分支管理)
- git的学习笔记(分支管理)
- Git学习笔记(三) - 分支管理
- git学习笔记二(分支管理)
- Git学习使用(五):分支管理<Ⅰ>
- hdu 1702 ACboy needs your help again!(模拟栈和队列)
- Lua源文件目录分析
- 嵌入式学习笔记004-裸奔篇之SDRAM
- tomcat配置数据库连接池
- javascript常用 正则表达式
- Git学习笔记(五)---修改管理
- 如何在本地搭建一个Android应用crashing跟踪系统-ACRA
- 推箱子
- jsp和css放置图片的路径问题
- 教材上的例子--有限状态机,四种建模方式
- 操作系统如何产生的
- leetcode_77_combiantion_78_subsets_90_subsets2
- C# 的OPC客户端 (Advosol OPCDA.NET组件)
- poj2993