Git rebase的流程只需掌握以下最基本要点!可在实际应用场景中使用
以下是需要掌握的git rebase步骤,我已经将实际现场使用的程序整理成通用内容。
环境 []
-
- OS:Windows10
-
- Git:2.23.0
- 使用ツール:Git Bash
场景应用
-
- 将已经合并到主分支的更改也合并到工作分支中使用
-
- 在拉取请求(合并请求)时发生冲突→修复以避免构建错误
- 减少分支的分岐,保持干净的状态
等等…
这幅图像
过程
下列为名称和过程中具体值的对应关系,并且操作分支是基于父分支创建的。
名称手順中の具体値ローカルリポジトリ/c/work/hoge親ブランチdevelop作業ブランチfeature/hoge_202007
(1) 进入所需的本地仓库
$ cd /c/work/hoge
(2) 提交或存储工作分支
使工作目录中没有未提交的文件
①如果是提交
$ git add .
$ git commit -m "コミットメッセージ"
② 对于stash的情况
$ git stash
(3) 切換至母分支
$ git checkout develop
将远程代码库的内容反映到本地分支,使其保持最新状态。
$ git pull
(5) 切换至作业分支
$ git checkout feature/hoge_202007
以亲仓为基础,重新建立分支。
$ git rebase develop
如果发生冲突,请使用以下命令确认并解决相关问题(如果没有冲突,则不需要执行此命令)。
$ git status
只有当显示为 both modified 的文件,才需要进行修正(因为它们不会一次性全部显示,所以需要逐个解决,并且解决完后执行第8步的命令)。
(8) 如果冲突得到解决,请按以下命令顺序执行(如果没有冲突,则不需要执行)。
$ git add .
$ git rebase --continue
如果需要取消途中的重新基础操作,请执行以下命令(已更改内容也将被取消)。
$ git rebase --abort
如果重新确定完全完成,则还原已经完成的部分。请注意,如果rebase完全完成,则无法使用。
(9) 将代码推送到远程仓库
# プッシュ前に親ブランチの変更内容が取り込まれていることを確認しておく
$ git log --oneline
# リモートリポジトリにプッシュ
$ git push -f
→ 由于新添加的内容被加入到主分支中,因此会中断当前工作分支,我们使用-f选项来强制推送。
如果使用了步骤(2)进行了存储,应该在不久之后将其回复。
# stash一覧の確認
$ git stash list
# 最新のstashを反映
$ git stash pop
要注意的事项
-
- リベース前後で作業ブランチのコミットハッシュ値が変わる(イメージ図参照)。
- 原則、自身の作業ブランチ以外では実施しないこと。
結束
有时候,在某些必要的工作中,每次都要花费很多时间和精力,因此我为此准备了对策。
请参考
-
- git-stash | git-scm.com
- 色々な git stash | Qiita