你现在的修改还在工作区(或暂存区)里,如果你想把它们直接提交到别的分支,而不污染当前分支,可以这样操作:
方法 1:切换分支再提交(推荐)
perl
# 先暂存当前改动
git stash
# 切换到目标分支
git checkout 目标分支
# 取出改动
git stash pop
# 提交到目标分支
git add .
git commit -m "你的提交信息"
# 如果需要推送
git push origin 目标分支
这样改动只会落到目标分支,当前分支不会有任何记录。
方法 2:直接将当前修改提交到别的分支(不切换分支)
如果你的改动已经 git add
到暂存区,可以:
bash
git commit -m "你的提交信息" # 在当前分支生成一次提交
git branch temp # 创建一个临时分支指向当前提交
git checkout 目标分支
git cherry-pick temp # 把提交应用到目标分支
git branch -D temp # 删除临时分支
这样可以不丢改动,但过程稍复杂。
方法 3:用 git commit
的 --work-tree
/ --git-dir
(高级玩法)
如果真的不想切换分支,可以用:
sql
git --work-tree=. checkout 目标分支
git add .
git commit -m "你的提交信息"
不过这方式有风险,容易造成冲突,不建议日常用。
我建议你用 方法 1 ,既安全又直观。
如果你愿意,我还可以帮你写一个 一次性命令,直接把当前改动"搬运"到别的分支并保持当前分支干净。
你是想要我帮你做这个"一条命令搞定"的版本吗?