git - 如何将更改移出 master 分支

标签 git

基本问题,但这种情况一直发生在我身上:

  • working-branch 中进行更改
  • 切换到master
  • git merge working-branch
  • git push
  • cap deploy (到分期)
  • 泡一杯新茶

然后我回来想别的事情并开始做一些改变......同时还在 master 上。

有什么简单的方法可以:

  1. 防止直接编辑母版(可能是警告)
  2. 将所有编辑移至 working-branch清除master这样我就可以继续编辑 working-branch
  3. 将编辑旋转到一个全新的分支 new-working-branch然后丢弃 working-branch

冒险并尝试了 this page 的“分支”部分后半部分的建议。但这只是消除了我所有的编辑?!也许是因为在 git branch dubious-experiment 之后和 git checkout master git status在两个分支上是相同的(在主分支上不是“干净的”)。所以git reset --hard <SHA1sum>消除了两者的所有变化?!

  git branch dubious-experiment

  M---N-----O----P---Q ("master" and "dubious-experiment")

  git checkout master

  # Be careful with this next command: make sure "git status" is
  # clean, you're definitely on "master" and the
  # "dubious-experiment" branch has the commits you were working
  # on first...

  git reset --hard <SHA1sum of commit N>

最佳答案

根据您的描述,我假设您还没有提交任何更改——对吗?

如果是,这是您的答案:

如何防止直接编辑母版

您需要在编辑器中进行设置,但这可能会很困难。在提示符和编辑器中显示当前分支有很大帮助。

如何将更改移动到新分支 new-working-branch 然后丢弃 working-branch

git checkout -b new-working-branch
git add …
git commit -m "mycommit" 

因为你还没有向 master 提交任何东西,所以你不需要在 master 上改变任何东西。如果您愿意,现在可以丢弃您的工作分支。

如何将更改移至working-branch

git checkout -b temp-branch
git add …
git commit -m "mycommit" 
git rebase --onto working-branch master
git checkout working-branch
git reset --hard temp-branch
git branch -d temp-branch

如果您的更改不与 master 上的任何更改发生冲突,但不与工作分支中的任何更改发生冲突,则可以更简单地完成此操作:

git stash
git checkout working-branch
git stash pop

关于git - 如何将更改移出 master 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14506910/

相关文章:

git - Git 中的变更集是什么?

git - 维护 git 存储库的克隆

git - 我怎么知道 repo 将 "push"到哪里?

git - 在github中移动文件和文件夹

angularjs - NPM 开始抛出错误

Git - 运行更新后子模块 HEAD 总是分离?

git - 来自 git add 的警告。与 git add * 比较

git - git push 和 git push origin master 的区别

Git 克隆错误警告 : refname '' is ambiguous. Git 通常不会创建以 40 个十六进制字符结尾的引用

git - 将 svn 转储导出到 git 或 github