Git 和 Svn - dcommit 损坏了我的代码
Git and Svn - dcommit has corrupted my code
我试图在颠覆系统上提交我的 git 存储库,但出现了问题。这里详细说明了我到目前为止所做的事情:
- 从我们的 svn 上的提交开始,我启动了这个命令:
$git svn clone my_repo_url -s
- 处理了我的代码(所以我做了我的东西);
- 当一切正常时,我重新调整了一切。因为我读到 svn 不能很好地与 b运行ches;
一起工作
- 所以,对于单个 b运行ch(master),我 运行 这个命令:
git svn dcommit
- 推送到 svn 服务器失败(可能有一些冲突需要解决)。当时我不想解决这些问题,所以我启动了这个命令:
git rebase --abort
(也许我没有很好地阅读它的作用,但 git 是在暗示这个);
- 现在我丢失了我的解决方案(.sln 文件),在一个项目中我可以看到一个名为 'Backup' 的文件夹(我所有的 类 都是重复的)... wtf
简单的问题是:发生了什么?如何将之前的解决方案恢复到 'git svn dcommit'?
这是我的 .git/logs/HEAD:
的输出
5edc59acb6e200aef991d7de124008f8120ee187 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538033064 +0200 commit: Change the Map table label
1234c77ff6a21551ea615bee11cd9c56f2beb839 0d80fd2165866dd809dbdf16287898a71d31fecb my_name my_email 1538059453 +0000 rebase: checkout refs/remotes/git-svn
0d80fd2165866dd809dbdf16287898a71d31fecb 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538059583 +0200 rebase: aborting
1234c77ff6a21551ea615bee11cd9c56f2beb839 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538059584 +0200 rebase: updating HEAD
1234c77ff6a21551ea615bee11cd9c56f2beb839 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538059671 +0200 checkout: moving from master to TestMergeSvn_feature
1234c77ff6a21551ea615bee11cd9c56f2beb839 14687b653cd9b13bba47a971af002f95bfac3bf6 my_name my_email 1538059705 +0000 rebase: checkout refs/remotes/git-svn
14687b653cd9b13bba47a971af002f95bfac3bf6 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538060096 +0200 rebase: aborting
1234c77ff6a21551ea615bee11cd9c56f2beb839 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538060097 +0200 rebase: updating HEAD
1234c77ff6a21551ea615bee11cd9c56f2beb839 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538060179 +0200 checkout: moving from TestMergeSvn_feature to master
1234c77ff6a21551ea615bee11cd9c56f2beb839 5edc59acb6e200aef991d7de124008f8120ee187 my_name my_email 1538060222 +0200 checkout: moving from master to 5edc59a
5edc59acb6e200aef991d7de124008f8120ee187 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538060314 +0200 checkout: moving from 5edc59acb6e200aef991d7de124008f8120ee187 to master
1234c77ff6a21551ea615bee11cd9c56f2beb839 e009e033a3b1811e01c08f28a0a6cc2fa71fd566 my_name my_email 1538060866 +0200 checkout: moving from master to e009e03
e009e033a3b1811e01c08f28a0a6cc2fa71fd566 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538061011 +0200 checkout: moving from e009e033a3b1811e01c08f28a0a6cc2fa71fd566 to master
1234c77ff6a21551ea615bee11cd9c56f2beb839 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538061307 +0200 reset: moving to 1234c77
提前致谢。
可能还有一些我可能会忘记的额外步骤,但是...这就是我会做的:git rebase --abort
如果你正在做 rebase。确保您处于第一次使用您的工作创建的修订版(别担心,如果它已提交,您不会轻易丢失它)。如果不是,请返回(检查 git reflog,以防万一)。现在,执行 git svn fetch
以收集您没有从 svn 获得的所有更改。然后对要推送到的 svn 分支进行 rebase 或 cherry-pick 更改。然后 运行 git svn dcommit
.
我试图在颠覆系统上提交我的 git 存储库,但出现了问题。这里详细说明了我到目前为止所做的事情:
- 从我们的 svn 上的提交开始,我启动了这个命令:
$git svn clone my_repo_url -s
- 处理了我的代码(所以我做了我的东西);
- 当一切正常时,我重新调整了一切。因为我读到 svn 不能很好地与 b运行ches; 一起工作
- 所以,对于单个 b运行ch(master),我 运行 这个命令:
git svn dcommit
- 推送到 svn 服务器失败(可能有一些冲突需要解决)。当时我不想解决这些问题,所以我启动了这个命令:
git rebase --abort
(也许我没有很好地阅读它的作用,但 git 是在暗示这个); - 现在我丢失了我的解决方案(.sln 文件),在一个项目中我可以看到一个名为 'Backup' 的文件夹(我所有的 类 都是重复的)... wtf
简单的问题是:发生了什么?如何将之前的解决方案恢复到 'git svn dcommit'?
这是我的 .git/logs/HEAD:
的输出5edc59acb6e200aef991d7de124008f8120ee187 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538033064 +0200 commit: Change the Map table label
1234c77ff6a21551ea615bee11cd9c56f2beb839 0d80fd2165866dd809dbdf16287898a71d31fecb my_name my_email 1538059453 +0000 rebase: checkout refs/remotes/git-svn
0d80fd2165866dd809dbdf16287898a71d31fecb 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538059583 +0200 rebase: aborting
1234c77ff6a21551ea615bee11cd9c56f2beb839 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538059584 +0200 rebase: updating HEAD
1234c77ff6a21551ea615bee11cd9c56f2beb839 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538059671 +0200 checkout: moving from master to TestMergeSvn_feature
1234c77ff6a21551ea615bee11cd9c56f2beb839 14687b653cd9b13bba47a971af002f95bfac3bf6 my_name my_email 1538059705 +0000 rebase: checkout refs/remotes/git-svn
14687b653cd9b13bba47a971af002f95bfac3bf6 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538060096 +0200 rebase: aborting
1234c77ff6a21551ea615bee11cd9c56f2beb839 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538060097 +0200 rebase: updating HEAD
1234c77ff6a21551ea615bee11cd9c56f2beb839 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538060179 +0200 checkout: moving from TestMergeSvn_feature to master
1234c77ff6a21551ea615bee11cd9c56f2beb839 5edc59acb6e200aef991d7de124008f8120ee187 my_name my_email 1538060222 +0200 checkout: moving from master to 5edc59a
5edc59acb6e200aef991d7de124008f8120ee187 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538060314 +0200 checkout: moving from 5edc59acb6e200aef991d7de124008f8120ee187 to master
1234c77ff6a21551ea615bee11cd9c56f2beb839 e009e033a3b1811e01c08f28a0a6cc2fa71fd566 my_name my_email 1538060866 +0200 checkout: moving from master to e009e03
e009e033a3b1811e01c08f28a0a6cc2fa71fd566 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538061011 +0200 checkout: moving from e009e033a3b1811e01c08f28a0a6cc2fa71fd566 to master
1234c77ff6a21551ea615bee11cd9c56f2beb839 1234c77ff6a21551ea615bee11cd9c56f2beb839 my_name my_email 1538061307 +0200 reset: moving to 1234c77
提前致谢。
可能还有一些我可能会忘记的额外步骤,但是...这就是我会做的:git rebase --abort
如果你正在做 rebase。确保您处于第一次使用您的工作创建的修订版(别担心,如果它已提交,您不会轻易丢失它)。如果不是,请返回(检查 git reflog,以防万一)。现在,执行 git svn fetch
以收集您没有从 svn 获得的所有更改。然后对要推送到的 svn 分支进行 rebase 或 cherry-pick 更改。然后 运行 git svn dcommit
.