Git学习记录-分支&更改提交(二)

分支

显示分支一览表

git branch
在这里插入图片描述
*表示当前我们所处的分支

创建&切换分支

git checkout -b

  • 切换到feature-A分支,并进行提交
    git checkout -b feature-A
    该语句等同于如下两条命令:
    1.git branch feature-A
    2.git checkout feature-A
    在分支feature-A中修改文件,采用如下的方式,将会添加修改到feature-A分支中,而不会影响master分支:
    git add + 文件
    git commit -m “Add feature-A”
    (注意:如果不提交修改,直接切换到master分支,将会把修改同步到master中)
  • 切换回主分支
    git checkout master
  • 切回到上一个分支
    git checkout -

特性分支

(特性分支,集中实现单一特性(主题),除此之外不进行任何作业的分支)

主干分支

通常将master分支作为主干分支,主干分支中并没有开发到一半的代码,可随时供人查看。拥有多个版本时,主干分支也有多个。

合并分支

git merge
首先切换到主干分支
git checkout master
合并分支,加上–on-ff参数在历史记录中明确记录下本次分支合并
在这里插入图片描述
保存并退出后,feature-A中的内容就保存到master中了
在这里插入图片描述

以图表形式查看分支

git log --graph
在这里插入图片描述

更改提交的操作

回溯历史版本

git reset

  • 回溯到feature-A分支前
    要让仓库的HEAD(指向当前分支中最新一次提交的指针)、暂存区、当前工作树回溯到指定状态,使用:
    git reset --hard + 目标时间点的哈希值
  • 创建fix-B特性分支
    git checkout -b fix-B
    在这里插入图片描述
  • 推进至feature-A分支合并后的状态
    git reflog -> 查看当前仓库的操作日志。
    git log 只能查看以当前状态为终点的历史日志
    在这里插入图片描述

git reset --hard + 指定时间节点的哈希值
在这里插入图片描述

消除冲突

  • 合并fix-B
    在这里插入图片描述
    feature-Af分支的更改与fix-B分支的更改发生了冲突。
  • 查看并解决冲突部分
    在这里插入图片描述
    =======之上是当前HEAD的内容,下面是要合入的内容
    处理冲突
    在这里插入图片描述
  • 提交冲突解决之后的内容
    git add 与 git commit
    在这里插入图片描述

更改提交信息

git commit --amend ,修改上一条提交信息
在这里插入图片描述
在这里插入图片描述

压缩历史

git rebase -i

  • 创建feature-c分支
    git checkout -b “faeture-c”
    git commit -am “修改信息”(一次性完成add和commit)
  • 修正拼写错误
    在文件中修改拼写错误之后,再次git commit -am “修改信息”
  • 更改历史
    git rebase -i HEAD~2
    在这里插入图片描述
    将Fix typo的历史记录压缩到Add feature-c的历史记录中,将左侧的pick部分删除,改写为fixup。
    在这里插入图片描述
  • 合并至master 分支
    git checkout master
    git merge --no-ff feature-c
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章