修复功能分支上的常见错误

时间:2015-12-04 14:30:12

标签: git

我尝试用git改进我的工作流程。

为了开发新功能,我基于myFeature分支创建了Dev分支。

在处理此功能时,我在应用程序中发现了一个常见错误。我想在Dev分支中提交我的修复,但是我在myFeature分支上编写了修复,所以git禁止我切换分支,直到我将修复提交到当前分支

git checkout dev
error: Your local changes to the following files would be overwritten by checkout:

有没有一种方法可以提交此修复,而无需将文件复制到我的git仓库中,对其执行git checkout --,更改为Dev分支并复制固定文件?

3 个答案:

答案 0 :(得分:3)

我认为有两种方法可以做到这一点:

  1. git stash - > git checkout Dev - > git stash pop - > git commit
  2. git commit生成SHA-> git checkout Dev - > git cherry-pick SHA
  3. 对于这两种解决方案,您可以git checkout myFeature - > git rebase Dev之后。

答案 1 :(得分:1)

存储更改(实质上是创建匿名提交),以便工作目录是干净的。然后更改分支,将存储应用于新分支,然后提交。

git stash
git checkout dev
git stash pop

git stash pop有可能出现类似合并提交的内容;如果有必要,您需要解决这些问题,但是您可以像往常一样git addgit commit

答案 2 :(得分:0)

你能做的最好的就是樱桃选择提交。

首次运行

2015-12-04 14:49:26,969+0100 DEBUG [qtp-9795081-67] anonymous org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus - Event 'RepositoryItemEventRetrieve(sender="repotest00" [id=repotest00], repotest00:/edu/ub/test/mvntest/1.0-SNAPSHOT/maven-metadata.xml)' fired
2015-12-04 14:49:26,970+0100 DEBUG [qtp-9795081-67] anonymous org.sonatype.nexus.proxy.maven.maven2.M2Repository - repotest00 retrieveItem() :: FOUND repotest00:/edu/ub/test/mvntest/1.0-SNAPSHOT/maven-metadata.xml
2015-12-04 14:49:26,999+0100 DEBUG [qtp-9795081-58]  org.apache.shiro.session.mgt.DefaultSessionManager - Unable to resolve session ID from SessionKey [org.apache.shiro.web.session.mgt.WebSessionKey@601f6170].  Returning null to indicate a session could not be found.
2015-12-04 14:49:27,000+0100 DEBUG [qtp-9795081-58] *UNKNOWN org.sonatype.nexus.content.internal.ContentAuthenticationFilter - No authorization found (header or request parameter)
2015-12-04 14:49:27,000+0100 DEBUG [qtp-9795081-58] *UNKNOWN org.sonatype.nexus.content.internal.ContentAuthenticationFilter - No authorization found (header or request parameter)
2015-12-04 14:49:27,000+0100 DEBUG [qtp-9795081-58] *UNKNOWN org.sonatype.nexus.content.internal.ContentAuthenticationFilter - No authorization found (header or request parameter)
2015-12-04 14:49:27,000+0100 DEBUG [qtp-9795081-58] *UNKNOWN org.sonatype.nexus.content.internal.ContentAuthenticationFilter - Attempting to authenticate Subject as Anonymous request...
2015-12-04 14:49:27,000+0100 DEBUG [qtp-9795081-58] *UNKNOWN org.apache.shiro.realm.AuthenticatingRealm - Looked up AuthenticationInfo [anonymous] from doGetAuthenticationInfo

然后获取修复程序的哈希值

结帐您的目标分支(在您的情况下为Dev)

git log

并将cherry pick命令应用于提交的哈希值。

git checkout <yourTargetBranch>  

请查看此链接,详细说明您的案例。

https://ariejan.net/2010/06/10/cherry-picking-specific-commits-from-another-branch/