美文网首页
git篇之rebase

git篇之rebase

作者: 清宵寒夜 | 来源:发表于2021-07-31 13:27 被阅读0次

rebase 重新定义base起点来保持线性提交

a.git rebase master 下载远程仓库最新代码并与本地工作区合并,有冲突就解决冲突,
b.git add . 缓存本地更改到本地仓库
c.git rebase --continue 合并代码继续提交
git pull --rebase gitpull同时执行merge相当于 git pull +git merge
git config --global pull.rebase true 全局配置git pull的时候执行--rebase

git rebase合并分支

git rebase branch
比如合并开发分支dev到master
1.git checkout localdev ---->切换到本地开发分支如果已经在本地开发分支可忽略
如果localdev有一个功能开发的多次提交建议合并提交历史,如果不进行这一步,在git rebase master时可能会多次解决冲突,如果每个历史都与master上最新代码冲突了话需要一一解决如果合并了就只需要解决一次了
2.git rebase master---->解决冲突--->git rebase --continue
3.git checkout master ---->切换到master分支
git merge localdev ---->合并dev分支到master分支
4.git push ---->推送合并后的代码

修改历史commit

修改最近commit

git commit -a --amend
-a所有的更改
--amend 会将更改添加到最近一个提交中

修改更早的commit

1、git rebase -i HEAD~3
在默认编辑器打开最近三次commit内容行前pick为e或者edit(按下i/a进入编辑模式)
最新的提交在最下方,第一行必须为pick
2、esc+:wq退出
3、git commit --amend 开始修改修改日志
4、git rebase --continue 保存修改
git rebase --abort 放弃本次修改
5、未提交:git push
已提交到远端 git push -f/--force origin HEAD:branch名

合并commit

1、git rebase -i commitid/git rebase -i HEAD~3 打开需要合并的最早提交上一个commitid/打开最近三次commit
2、除却需要保留的commit信息行前保持pick,其他行pick改为s或squash
第一行必须保持为pick
3、esc+:wq退出
4.在commit message修改message按i进入编辑模式
5、未提交:git push
已提交到远端 git push -f/--force origin HEAD:branch名

拆分commit

1、git rebase -i commitid/git rebase -i HEAD~3 打开需要拆分提交上一个commitid/打开最近三次commit(按下i/a进入编辑模式)
2、将需要拆分的commit行前的pick 改为edit
最新的提交在最下方
3、esc+:wq退出
4、git rm --cached file ---->处理缓存区文件把需要拆分的内容移除缓存区
可用git diff 上个版本的commitid 需要修改的commitid --stat来查看这个版本提交的内容
--stat 只显示发生变更的文件名 否则显示全部文件2个版本之间的差异
然后用git rm --cached file 把需要拆分的内容移除缓存区
5、git commit --amend -m "commit content" 将余下缓存区内容提交一次
--amend 追加提交,它可以在不增加一个新的commit-id的情况下将新修改的代码追加到前一次的commit-id中
6、git add file --->把刚刚移除的内容添加回缓存区
7、git commit -m "commit content"
8、git rebase --continue 保存修改
git rebase --abort 放弃本次修改

修改commit顺序

1、git rebase -i commitid/git rebase -i HEAD~3 打开需要拆分提交上一个commitid/打开最近三次commit(按下i/a进入编辑模式)
2、把需要调换位置的pick行调换位置
3、esc+:wq退出
4、git rebase --continue 保存修改
git rebase --abort 放弃本次修改

相关文章

  • git篇之rebase

    rebase 重新定义base起点来保持线性提交 a.git rebase master 下载远程仓库最新代码并与...

  • git8~rebase

    2019.06.25 git rebase git stash git pull --rebase git sta...

  • 如何正确rebase

    git rebase -i origin/分支 合并冲突 git status git rebase --cont...

  • git整体学习

    基础 1. git ... 3. git rebase 第二种合并分支的方法是 git rebase。Rebase...

  • Git错误信息解决记录

    Git error: previous rebase directory .git/rebase-apply st...

  • Git使用教程

    拉取代码的正确步骤 git fetch git rebase git rebase --continue(遇到冲突...

  • Git 批量合并Commit或commit信息

    git rebase -i HEAD~3 git rebase -i [commitId-a] [commitId...

  • git merge conflict

    git pull --rebase编辑confilct的文件,修改完毕后git addgit rebase --c...

  • git之rebase

    rebase的两大用处: 从上游分支获取最新commit信息,并有机的将当前分支和上游分支进行合并。git reb...

  • git rebase 用法

    git rebase Git rebase 与 Git merge 的区别 如果经常多人协作开发的话,可能都很熟悉...

网友评论

      本文标题:git篇之rebase

      本文链接:https://www.haomeiwen.com/subject/bqeiultx.html