本章分三个部分讲:
- 一是讲解如何控制修改
- 二是讲解如何撤销修改
- 三是讲解如何操作文件
这章主要是对前面做一个补充,提点出来容易错的几个部分,防止阅者踩坑。
控制修改
还是以前文所创的demo仓库为例,打开里面的readme.md文件,其初始内容如下:
# dmeo
hello world
给readme.md添加额外内容“this frist modify",readme.md此时文件内容如下:
#demo
hello world
this frist modify
执行如下命令:
git add readme.md #windows不区分大小写,实际上readme是大写
将readme.md文件添加到暂存区,暂时不提交;再修改readme.md文件,将其this frist modify改为this second modify;其文件内容如下:
#demo
hello world
this second modify
注意:第一次修改文件内容后,执行了git add命令,第二修改文件内容后,并没有执行git add命令。
注意:第一次修改文件内容后,执行了git add命令,第二修改文件内容后,并没有执行git add命令。
注意:第一次修改文件内容后,执行了git add命令,第二修改文件内容后,并没有执行git add命令。
接下来执行如下命令:
git commit -m “file-modiity test”
执行命令结果如下:
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: README.md
no changes added to commit (use “git add” and/or “git commit -a”)
提示啥子东西,表示修改没有被提交,甚至连git status没有执行,就直接弹出了状态信息。出现这种原因很简单,回顾一下操作步骤如下:
- 修改readme.md文件
- 将readme.md文件添加到暂存区
- 再修改readme.md文件
- 将仓库目录与本地git仓库同步
发生这种情况是因为出现了异步执行操作,git系统支持的是同步操作,也就是说在提交仓库修改之前,暂存区的内容与工作区的内容必须一致。将上述的操作步骤改为如下方式,则不会出现异常。
- 修改readme.md文件
- 将readme.md文件添加到暂存区
- 再修改readme.md文件
- 在将readme.md文件添加到暂存区
- 将仓库目录与本地git仓库同步
撤销修改
此时,打开你的demo仓库下的src文件夹,查看demo.txt文件内容如下:
hello world
将demo.txt文件内容修改如下所示:
hello world
my boss is SB
假设你是一名程序员,如果你真的提交了这个文档,再被你的老板看见,那么你就可以卷铺盖回家了。所以说,撤销修改就很重要,撤销方式也很简单,执行git checkout – filename命令就行。
修改撤销分四种情况,分别如下:
- 工作区修改了,但是还没有添加到暂存区。
- 工作区修改了,但是已经被添加到暂存区。
- 工作区修改了,也已经提交到本地仓库了。
- 工作区修改了,提交到本地仓库并同步到远程仓库。
分别对四种情况的撤销操作如下:
- 执行git checkout – filename命令就行
- 执行git reset head filename将其添加从暂存区撤销掉,再执行操作1即可。
- 利用前面教学方法,版本回退。
- 神仙难救,哭去。如果看这个的朋友找到方法了,求在评论区赏下来。
操作文件
文件操作无非四种情况,分别是:
- 创建文件
- 删除文件
- 移动文件
- 重命名文件
1、创建文件
创建文件git是没有提供相应命令的,但是可以借用dos窗口来创建文件,这里dos如何创建文件请自行百度。那么如何实现本地仓库创建文件呢?在dos下创建了文件,再借用git add和git commit命令从而实现文件创建。
2、删除文件
删除文件命令为git rm file;假设在demo/src上创建一个文件test.txt文件,其文件内容为空。
在命令行窗口下执行如下命令:
git add *
git commit -m "create file “test.txt”
git rm test.txt
为什么先要将文件提交到本地仓库呢?因为git操作的是本地仓库内容,如果直接在demo/src上创建一个文件test.txt文件,这个文件输入OS,而不是属于git仓库。如果不同步到本地仓库,执行git rm test.txt,则会出现如下执行结果:
fatal: pathspec ‘test.txt’ did not match any files
如果提交了,执行结果如下:
rm ‘src/test.txt’
还有一个命令值得一提,git rm --cached filename;此命令执行后,将文件从本地仓库删除,但是不从OS中删除。
3、重命名文件
git提供了重命名文件的git mv <oldname> <newname>命令,使用该命令可以将文件重命名。
4、移动文件
重命名文件命令也能用来移动文件,其命令格式为git mv <file> <destination directory> ,使用该命令可以将文件移动到destination directory目录下。
注:由此向上,本章所有介绍的操作在操作之后,必须使用git add和git commit命令提交修改。
本章讲了一些基本操作,这些操作反正我自己没有用到几个,直接在OS中修改了,然后提交就完事了。不过你说我不说吧!这毕竟是人家git系统精心设计出来的东西,你说我说吧!犹如鸡肋,食之无味。下章讲如何关联远程仓库,以及远程仓库如何与本地仓库进行同步访问。
欲知后事如何,且听下回分解。
有钱的赏个钱场,没钱的赏个人场。良某人谢过了。