我目前正在开发一个SVN用作存储库的项目.在本地,我用代码进行了几次"实验",我不想承诺回购.因此,我在SVN工作目录的顶部本地使用git,并使用多个分支进行不同的"实验".所以它看起来像这样.
C0 ---- C7 (master)
\
\---- C1 ---- C2 ---- C4 (exp1)
\ \ \
\ \ \---- C3 (exp2)
\ \
\ \---- C5 (exp3)
\
\---- C6 (exp4)
Run Code Online (Sandbox Code Playgroud)
在分支上master我想要有无污染的SVN回购,即C0是SVN Repo Revision x,C7是SVN Repo Revision x + n.
以某种方式很容易地将所有exp分支重新固定到C7上,使树看起来像下图?
C0 ---- C7 (master)
\
\---- C1' ---- C2' ---- C4' (exp1)
\ \ \
\ \ \---- C3' (exp2)
\ \
\ \---- C5' (exp3)
\
\---- C6' (exp4)
Run Code Online (Sandbox Code Playgroud)
我想使用rebase,因为我不想修改本地SVN Checkout的状态,并希望我的更改建立在SVN修订版之上.
我也对在SourceTree中工作的解决方案感兴趣,而不必使用shell.
我有一个存储库,其中有两个分支,master和master-old,它是作为孤儿分支创建的。
现在我想对整个masteron进行变基master-old,但每个提交的树应该保持不变,即每个提交的工作副本在变基之前master和master-old之后看起来应该完全相同。
Current state
-------------
A - B - C - D <--- master
E - F - G - H <--- master-old
Desired state
-------------
E'- F'- G'- H'- A'- B'- C'- D' <--- master
Run Code Online (Sandbox Code Playgroud)
我尝试使用 来完成此操作git rebase --onto master-old --root。问题是,在 的初始提交master和整个提交历史记录中master-old,创建了许多相同的文件,因此我需要解决大量冲突。
有没有办法以保持每次提交树完整的方式重写历史记录?
我已经在我的 Windows 10 系统上安装了 TortoiseSVN 和 TortoiseGit。为了能够更轻松地区分基于 Git 和基于 SVN 的项目,我认为最好为两个客户端使用不同的图标覆盖。不幸的是,当我更改 TortoiseSVN 中的图标覆盖时,git-repositories 的覆盖也会更改为我在 TortoiseSVN 中选择的图标集。
有没有办法为 TortoiseSVN 和 TortoiseGit 使用不同的图标叠加?