rebase 解决冲突流程及git项目使用总结

rebase 解决冲突流程及git项目使用总结

git项目使用流程

一、基本流程

拉取最新代码——创建分支——提交分支至云端——分支代码完成后查看状态——将代码添加至暂存区——本地提交代码——推送至云端——切换为主分支——合并子分支代码——推送至云端——删除分支

二、执行命令

  1. 在主分支拉取最新代码: git pull

  2. 基于主分支创建并且切换到新的子分支(没有这个分支就会新建): git checkout -b 分支名

  3. 先把新的子分支推送到云端仓库,因为此时云端没有这个分支。如果有则忽略此步骤: git push -u origin 分支名

  4. 然后创建对应文件,开始写代码

  5. 将修改过的文件全部添加到暂存区: git add .

  6. 将代码保存到本地仓库: git commit -m “完成了分类功能开发”

  7. 将本地代码推送到云端: git push

  8. 切换到主分支: git checkout master

  9. 拉取最新代码: git pull

  10. 如果上一步骤存在更新,则进行变基操作即处理冲突(第四步),如果没有,则进行下一步

  11. 切换到主分支,合并代码: git merge 分支名

  12. 把主分支推送到云端: git push

  13. 删除本地的分支: git branch -d 分支名

  14. 删除云端的分支: git push origin --delete 分支名

三、常用git命令

初始化一个git仓库: git init

查看状态: git status

添加所有修改: git add -A

提交修改: git commit -m '提交说明'

查看提交历史,按字母 q(uit)退出: git log

查看没add的不同: git diff(erence)

查看本地分支: git branch

查看所有分支: git branch -a

删除未合并代码分支: git branch -D 分支名

拉取本地不存在的远程分支: git checkout -b 本地分支名 origin/远程分支名

与远程厂库关联: git remote add origin 地址

四、解决冲突

pre-1: 在基准分支(主分支)上接取最新的代码 git pull
pre-2: 切换到自己的分支上 git checkout 分支名

  1. git rebase dev
  2. 解决冲突(需要和团队之间商量)
  3. git add -A
  4. git rebase --continue
  5. 重复2,3,4
  6. 至到reabase完成,会出现applying字样
  7. 有可能本地自己的分支和远程分支还有冲突,这时候需要git pull origin qh/home 之后,解决冲突再push即可

五、git的语义化commit

chore: add Oyster build script(其他修改, 比如构建流程, 依赖管理)
docs: explain hat wobble(更改文档)
feat: add beta sequence(新增了一个功能)
fix: remove broken confirmation message(修复了一个 bug)
refactor: share logic between 4d3d3d3 and flarhgunnstow(代码重构,既不修复错误也不添加功能)
style: convert tabs to spaces(不影响代码含义的变化(空白、格式化、缺少分号等,注意不是 css 修改))
test: ensure Tayne retains clothing(测试用例修改)

六、 git merge和git rebase的区别

merge
  • marge 特点:⾃动创建⼀个新的commit 如果合并的时候遇到冲突,仅需要修改后重新
  • commit 优点:记录了真实的commit情况,包括每个分⽀的详情
  • 缺点:因为每次merge会⾃动产⽣⼀个merge commit,所以在使⽤⼀些git 的GUI tools,特别是commit⽐较频繁 时,看到分⽀很杂乱。
    在这里插入图片描述
rebase
  • rebase 特点:会合并之前的commit历史
  • 优点:得到更简洁的项⽬历史,去掉了merge commit
  • 缺点:如果合并出现代码问题不容易定位,因为re-write了history
    在这里插入图片描述
    总结: 因此,当需要保留详细的合并信息的时候建议使⽤git merge,特别是需要将分⽀合并进⼊master分⽀时;当发现⾃⼰修 改某个功能时,频繁进⾏了git commit提交时,发现其实过多的提交信息没有必要时,可以尝试git rebase.
### 解决 Git Rebase 过程中的合并冲突 当执行 `git rebase` 命令时,如果存在文件修改重叠的情况,则可能会发生合并冲突。此时需要手动解决这些冲突才能继续rebase操作。 #### 发现冲突 一旦出现冲突Git会暂停rebase过程并提示哪些文件存在问题[^1]。通过命令: ```bash git status ``` 可以查看具体涉及冲突的文件列表以及当前rebase的状态。 #### 编辑冲突文件 对于每一个有冲突的文件,打开它之后可以看到如下形式的内容片段: ```text <<<<<<< HEAD // 当前分支上的代码 ======= // 另一提交里的不同版本代码 >>>>>>> abcdefg... commit message (from the branch being rebased onto) ``` 编辑该文件来保留希望保留在最终历史记录中的更改部分,并移除不需要的部分或进行必要的融合调整[^2]。 #### 标记已解决问题 完成上述编辑工作后,保存文件并通过以下指令告知Git已经解决了特定文件内的冲突: ```bash git add <filename> ``` 这一步骤非常重要,因为只有标记为已处理过的文件才会被纳入到后续的操作当中去。 #### 继续Rebase流程 每当解决了一轮次的所有冲突以后,都需要运行下面这条命令让Git知道应该恢复rebase进程: ```bash git rebase --continue ``` 如果有多个commit引发连续几轮的冲突,则需重复以上几步直到整个rebase顺利完成;当然也可以随时终止这个交互式的变基过程: ```bash git rebase --abort ``` 这样就可以回到最初开始尝试做rebase之前的状态了[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值