关于如何git提交基于其他分支

时间:2016-10-17 11:15:26

标签: git

我的情景:

  • 我正在分支机构工作
  • 在该本地分支上提交了一些提交
  • 我的工作文件夹中有更改

现在我发现了一个小错误或错字。

  • 我想提交(新)分支
  • 新分支不应该基于当前分支,而应该基于例如' master'
  • 不应该检出新分支,我想留在当前分支并继续

我当前的工作流程是使用tortoise git,提交到一个新分支,然后通过删除除最后一个之外的所有提交来重新绑定该分支,然后签出我的当前'再次分支。

当前流量

git branch my-typo-fix master
git checkout my-typo-fox
git add myfile
git commit -m "Typo in my file"
git checkout my-current-branch

当挂起的更改发生冲突时,这并不总是有效,这也不是我想要提交到该修复分支的内容。这也不是非常有效。

这个工作流程可以改进,还是我完全错了?

更新

根据Mykhailo的评论略微改进了工作流程

git checkout -b my-typo-fix master
git add myfile
git commit -m "Typo in my file"
git checkout my-current-branch

2 个答案:

答案 0 :(得分:2)

  

可以改进此工作流程

git stash就是这样做的:

git stash
git checkout master
git checkout -b my-typo-fix
# make change
git add ...
git commit ...
git checkout my-current-branch
git stash pop
  

不应该检查新分支,我想留在当前分支

然后,您必须将存储库克隆到另一个工作目录并在那里进行修复。每个定义git commit始终适用于当前检出的分支。但是给定方法的最终结果是一样的。

答案 1 :(得分:1)

首先,你可以结合使用

git branch my-typo-fix master
git checkout my-typo-fix

git checkout -b my-typo-fix master

根据Git docs

  

指定-b会导致创建一个新分支,就像git-branch一样   被叫,然后检查出来。

此外,您可以使用git stashGit docs)暂时将更改从工作副本中隐藏(在切换到修复分支之前),并在切换回分支后使用git stash pop重新应用这些更改。这有助于避免在结账时发生冲突。