所以我使用git-svn与我们的主svn repo保持同步。我还创建了一个远程git仓库,用于推送分支以保护我的机器,直到更改准备好合并到svn中。问题是,当我有一个需要同时转到svn和git的提交时,我必须首先使用git svn dcommit。 dcommit重写提交的SHA。如果我已经推送,git然后正确地查看提交,因为它们具有不同的SHA但具有相同的内容。有时候,我忘了首先发送dvmit。如果我这样做,我该如何处理?我需要从远程分支中删除提交而不从本地存储库中删除它。我一直在做的是打击git repo,因为此刻,我是唯一使用它的人,但这显然不是一个令人满意的解决方案。
编辑:我忘了提到远程git repo是裸露的。答案 0 :(得分:1)
您可以尝试抓取Git遥控器,而不是推送它。换句话说,不是从本地计算机(工作副本所在的位置)执行git push remote
,而是登录到远程计算机并执行git fetch local
。这将永远成功。如果您在执行git svn dcommit
之前意外地获取了遥控器,那就没问题了。只需执行dcommit,然后重新获取。 fetch将始终强制更新任何需要它的分支。
答案 1 :(得分:1)
答案 2 :(得分:0)
您可能会发现我描述的in this article工作流程非常有用。特别是,我相信您可以使用步骤3中描述的相同过程来“退出”远程git仓库中的提交,然后git push
git-svn-id-tagged提交。关于远程git仓库交通的警告当然是重要的。
我做使用裸露的远程git repo。