Git 修复功能分支上的常规错误
我试图用git改进我的工作流程 为了开发一个新特性,我基于我的Git 修复功能分支上的常规错误,git,Git,我试图用git改进我的工作流程 为了开发一个新特性,我基于我的Dev分支创建了一个myFeature分支 在使用此功能时,我发现我的应用程序中存在一个常规错误。我想在Dev分支中提交我的修复,但我在myFeature分支上编写了修复,因此git禁止我在将修复提交到当前分支之前切换分支 git checkout dev error: Your local changes to the following files would be overwritten by checkout: 是否有一种方
Dev
分支创建了一个myFeature
分支
在使用此功能时,我发现我的应用程序中存在一个常规错误。我想在Dev
分支中提交我的修复,但我在myFeature
分支上编写了修复,因此git禁止我在将修复提交到当前分支之前切换分支
git checkout dev
error: Your local changes to the following files would be overwritten by checkout:
是否有一种方法可以提交此修复而无需将文件从我的git repo中复制出来,对其执行
git签出--
,更改为Dev
分支并复制修复文件?我看到两种方法:
git stash
->git签出开发人员->git stash pop
->git提交
git提交
生成SHA->git签出开发
->git cherry pick SHA
git rebase Dev
。隐藏更改(这实际上创建了匿名提交),以便工作目录是干净的。然后更改分支,将隐藏应用于新分支,然后提交
git stash
git checkout dev
git stash pop
git-stash-pop
具有类似合并提交的潜力;如果有必要,您需要解决这些问题,但是您可以像往常一样git add
和git commit
。最好的方法是选择提交
首轮
git log
然后获取提交的哈希值,该哈希值位于修复位置
签出您的目标分支(在您的情况下是Dev)
git签出
并在提交的哈希上应用cherry-pick命令
git cherry-pick <commitHash>
git樱桃采摘
检查此链接,其中详细解释了您的案例
为什么
git stash pop
而不是git stash drop
?@IggY,因为您希望将更改应用于Dev
分支git stash drop
只是删除了你的补丁。为什么git stash drop
因为,根据它的答案下的Nils_M评论,它会删除补丁?因为这两个词太相似了,我写错了。
git cherry-pick <commitHash>