fast-forward:快进
- 如果可能,合并分支时Git会使用fast-forward模式
- 这种模式下,删除分支时,会丢掉分支信息
- 合并时加上
-- no-ff
参数会禁用fast-forward,这样会多出来一个commit id -
git merge --no-ff dev
:会提示你在输入一个commit来记录你的这次合并,并不是直接合并,再把合并的分支的commit更新到和dev分支的commit一样后,还会多出来你合并时的commit,这样会保留分支的信息 - 查看log:
git log --graph
:可以查看到图形化的分支线路日志
版本回退
在进行了一次commit后,发现我们的代码出现了问题,这个时候,我们就需要回退到上个版本。那么Git其实记录的我们的每一次commit,使得版本的回退就十分的容易和可靠
- 现在我们创建了一个新的仓库,并且对一个文件进行了四次提交(修改了三次,分别依次写入了
hello
、world
、a another line
、hello git
四行内容),这是我们的提交日志。
提交了4次
-
当我们想回退到上个版本的时候,或者想回退到某个版本的时候
git提供了丰富的指令
- 我们按上面的指令执行,提示我们的commit变化了,
git log
查看日志也会少一条
回退到了上一个commit
-
同时,如果我们需要让历史的状态回到最新的状态,我们可以用其他指令的参数来指定要去到的版本。例如我们需要回到最新的版本。如果记录了git log的话,我们可以只输入最新的commit的id的前几位回到最新commit。(不仅能回退还能前进)
回到了最新的commit
- 问题又来了,如果我们不记得git log的内容,也不知道最新的commit_id是什么,那么我们就可以采用
git reflog
,它记录的是操作日志,不是提交日志,我们可以使用它来看到操作的commit_id,以此来回退版本。
操作日志
网友评论