比如当前在rn_base分支, 同时开发多个需求。情况是这样在rn_base分支先commit了一笔代码修改的UI暂时不提交。发现需要同时再开发多个需求。如果都在同一个本地分支开发代码混在一起比较乱。需要为每个需求新建本地分支。步骤如下1、先stash存储下rn_base分支现有的改动比如gradle.properties等文件我不想提交先stash下。这一步很重要后面创建本地分支需要基于这个干净的分支。$ git stash push -m 本地配置 Saved working directory and index state On rn_base: 本地配置2、再查看下状态是干净的状态了显示working tree clean3、为修改UI的那笔commit新建一个本地分支如feature/ui-fix,并切换到该分支 。即基于当前commit新建一个新本地分支用于永远保存这个UI修改的代码。4、将rn_base分支重置到远程最新状态。5、为每个新需求创建独立开发分支比如我有个需求要升级rn为这个需求的开发创建一个本地分支feature/upgrade-rn:因为还要再创建一个本地分支先切换回rn_base分支同样新建本地分支ok. 想开发哪个需求就切换到对应分支去开发。可以用git命令切换分支也可以在Android Studio里面切换分支很方便ok. 后续我要push ui-fix分支那个commit可以这样# 切换到保存 UI 修改的分支 git checkout feature/ui-fix # 更新本地 rn_base如果期间有其他人提交 git fetch origin rn_base # 将 UI 修改分支变基到最新的 rn_base git rebase origin/rn_base # 如果有冲突解决后继续 rebase # 重新推送到 Gerrit git push origin HEAD:refs/for/rn_baseok. 另外补充当git checkout rn_base切换到rn_base分支后为防止有别人提交了代码最好获取下最新代码执行git fetch origin然后将本地rn_base分支重置到远程分支origin/rn_base的 commit以丢弃本地可能存在的多余 commit例如之前已分离出去的 UI 修改 commit并同步远程更新git reset --hard origin/rn_base # 本地 rn_base 现在完全等于远程最新状态这里注意在执行git reset --hard之前需确保已经用git stash保存了所有未提交的改动因为--hard会清除它们。6、各个分支提交代码方法1确保所有改动都已提交到本地分支在开发分支上执行git status确认所有改动都已 commit。如果有未提交的改动先git add然后git commit。2同步最新的目标分支代码变基为了避免冲突并确保提交基于最新的远程目标分支比如rn_base执行以下步骤# 切换到目标分支如 rn_base并更新到最新 git checkout rn_base git fetch origin git reset --hard origin/rn_base # 确保本地 rn_base 与远程完全一致 # 切换回开发分支 git checkout feature/upgrade-rn # 将开发分支变基到最新的 rn_base 上 git rebase rn_base如果有冲突Git 会提示解决。解决后使用git add 冲突文件然后git rebase --continue继续直到变基完成。变基会使提交历史线性且干净避免产生多余的合并提交3推送代码这里是推送到gerritgit push origin HEAD:refs/for/rn_baseok. 但是纠正上面一个错误。提交本地分支代码在rebase前需要先commit或stash该分支上的修改不然报错ok.