对于
git commit
操作,如果需要描述的内容比较短,那么我们可以在命令后面加-m"描述内容"
语句来进行描述,就会直接对这次提交进行描述,而不会进入vim编辑。
我们再次修改文件,然后操作
Git的添加
在基本命令实操中我们已经有一个添加的完整流程,这里直接截图给看一下,我们添加的新的
test2.txt
文件。
这里新添加了一个test2文件到版本库
Git的删除
在上面我们已经添加了新的文件到Git的版本库中,我们可以
git log
查看操作日志,那么我们这个需要删除这一次添加,应该如何做?(假设我们是误提交)
-
git rm
:Git提供给我们一个类似Linux命令的指令,用来删除文件。
我们仔细分析一下操作
- 首先我们使用了
git rm test2.txt
来删除这个文件,然后我们使用git status
发现,Git的删除文件,依然走的是先操作(删除)再提交(描述这次操作)。文件已经被成功删除,但是如果还未提交到版本库,我们依然可以用git reset HEAD test2.txt
来取消这次操作,然后再使用git checkout -- test2.txt
来恢复这次删除的操作。 -
我们现在再来成功的删除一次,然提交到版本库
成功删除并提交到版本库
可以看到日志文件也记录了这次删除
-
当我们使用操作系统提供的命令去删除文件后
我们依然可以使用checkout来取消
-
git rm
:1.删除了一个文件。2.将被删除的文件纳入到暂存区(stage),也就是说这个命令同时完成了两件事。如果恢复被删除的文件,需要执行两个操作:git reset HEAD -- 文件名
(将删除的文件从暂存区恢复到工作区),git checkout -- 文件名
(将工作区中的修改丢弃掉,也就是取消这次操作) -
rm
:只删除了文件,这个时候我们执行git commit
提交是提交不了的,因此我们还需要再使用命令把它纳入到暂存区才能进一步操作。如果要取消这次删除,只需要git checkout -- 文件名
(把工作区的删除操作取消掉) -
git reset HEAD -- 文件名
:将删除(不一定是删除,这里的例子是一次删除操作)的文件从暂存区恢复到工作区 -
git checkout -- 文件名
:将工作区中的修改丢弃掉,也就是取消这次操作
Git的重命名
如果在我们的工程文件中,觉得一个文件的名字不是很到位,我们需要修改它
-
git mv
:将一个文件移动到另一个地方,在当前的目录下移动,就相当于重命名。
我们依然来逐步分析
- 我们成功的用
git mv
命令把文件重命名了,然后我们使用git status
查看状态,发现暂存区里面已经有了这一次操作,然后我们依然尝试把文件从暂存区拿回来(取消这次操作)git reset HEAD text.txt
,然后再查看状态发现,出现了两个文件,一个是新文件,一个是有删除操作的工作区旧文件,那么我们可以明白,Git中的重命名操作就是删除旧文件然后创建新文件(改过名字的),那么我们就可以这样取消这次改动:
取消改动,就是把所有文件拉到工作区,再把新文件删除
-
那么正常的改名流程应该是如下的:
commit提交后,提示0行增加,0行删除,名字修改
- 那么我们采用Linux自带的重命名命令
mv
,会发现,同样的是删除旧的文件,增加新的改过名的文件,但是增加的文件是不在暂存区的(未追踪)。
我们能注意到新增的是未追踪的文件
Git commit的修改
在一次提交中,我不小心把
git commit -m"写错了"
的描述信息写错了,我们该如何修改?
-
git commit --amend -m"正确的描述"
:把上次提交时的描述再次修改一次。(同一次提交只是描述被重写了)
日志里上一次描述信息是rename ...
现在我们修改它
修改成功
Git的日志说明
查看日志的方式是
git log
,按q
是退出日志
- 进入log后,按空格是到末尾
-
ctrl+f
是往下走,ctrl+b
是往上走 -
git log -n
:n是数字,代表查看最近n条的日志 -
git log --pretty=oneline
:以一行的形式查看日志(简略版)
网友评论