Git有两个远程回购站,一个git,一个svn
所以我使用git-svn来与我们的主要svn repo保持同步。 我还创建了一个远程git仓库,以便将分支机构保存在我的机器上,直到这些更改准备好并入svn。 问题是,当我有一个提交需要去svn和git,我必须首先git svn dcommit。 dcommit重写提交的SHA。 如果我推了,git然后将提交视为两次提交,因为它们有不同的SHA但内容相同。 有时候,我会先忘记svn dcommit。 我如何处理这个问题? 我需要从远程分支中删除提交而不从本地回购中删除它。 我一直在做的是重新打开git repo,因为目前我是唯一使用它的人,但这显然不是一个令人满意的解决方案。
编辑:我忘了提及远程git回购是裸露的。
你可以尝试进入Git远程,而不是推到它。 换句话说,不是从本地机器(工作副本所在的位置)执行git push remote
,请登录到远程机器并执行git fetch local
。 这将永远成功。 如果您在执行git svn dcommit
之前意外地获取了远程git svn dcommit
,则不会有任何问题。 只需执行dcommit,然后重新获取。 获取将始终强制更新任何需要它的分支。
您可能会发现我在本文中描述的工作流程很有帮助。 特别是,我相信你可以使用步骤3中描述的相同过程来“退出”远程git仓库中的提交,然后git push
git-svn-id-tagged提交。 关于远程git回购流量的警告当然是一个重要的问题。
我使用这个程序与一个裸露的远程git回购。
链接地址: http://www.djcxy.com/p/89509.html