管理修改
执行 git diff HEAD -- {filename} 命令可以查看工作区和版本库中最新版本的区别,也就是查看修改了什么。
版本
什么是版本
执行一次 git commit 就会生成一条提交记录,好比“保存了一个快照”,也就是一个我们说的版本。每次 commit 成功,都会生成一个版本。
查看版本
使用 git log 查看版本记录(也就是历史提交记录)
版本回退 reset
版本回退应该在 git commit 执行成功之后进行。
回退到上一个版本
git reset --hard HEAD^ 表示回退到上一个版本
Git必须知道当前版本是哪个版本,在Git中, 用HEAD表示当前版本,也就是最新的提交1094adb…(注意我的提交ID和你的肯定不一样), 上一个版本就是HEAD^, 上上一个版本就是HEAD^^, 当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
回退到指定版本
git reset --hard {commit-id前五位} 可通过命令 git reflog 或 git log --oneline 查询提交记录,第一列就是commit id。
撤销修改
工作区产生了修改,要撤销修改,分两种情况来说:
- 修改后,还没有执行
git add ,可执行下面的命令撤销修改:
git checkout -- {filename} git restore {filename} # 新增
- 修改后,已经执行了
git add 将修改放到了暂存区,如果还没有commit ,此时撤销修改需要两个步骤:
- 先执行
git restore --staged {filename} 将修改从缓存区撤回到工作区(缓存区中修改将被丢弃); - 然后再执行
git restore {filename} 将工作区中的修改丢弃,就完成了撤销修改。
如果已经执行了 commit ,请使用版本回退进行处理。
删除文件
通常是在文件管理器中删除文件,或者通过 rm 命令删除。 上面讲过,删除文件也是一种修改,此时可以有两种选择:
- 删错了,或者由于其他原因,想要还原删除的文件。可以执行
git restore {filename} 进行还原。 - 确实要删除,可以先执行
git add {filename} ,然后执行git commit 这样文件就从版本库中删除了。
删除是危险操作,一般我们需要注意以下两点:
- 从来没有被添加到版本库就被删除的文件,是无法恢复的;
- 如果一个文件已经被提交到版本库,则永远不用担心文件被删除,但只能恢复到最新版本,会丢失最近一次提交后修改的内容。
|