我尝试用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
分支并复制固定文件?
答案 0 :(得分:3)
我认为有两种方法可以做到这一点:
git stash
- > git checkout Dev
- > git stash pop
- > git commit
git commit
生成SHA-> git checkout Dev
- > git cherry-pick SHA
对于这两种解决方案,您可以git checkout myFeature
- > git rebase Dev
之后。
答案 1 :(得分:1)
存储更改(实质上是创建匿名提交),以便工作目录是干净的。然后更改分支,将存储应用于新分支,然后提交。
git stash
git checkout dev
git stash pop
git stash pop
有可能出现类似合并提交的内容;如果有必要,您需要解决这些问题,但是您可以像往常一样git add
和git 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/