我有一个Git存储库,其中包含许多子目录.现在我发现其中一个子目录与另一个子目录无关,应该分离到一个单独的存储库.
如何在将文件的历史记录保存在子目录中的同时执行此操作?
我想我可以制作一个克隆并删除每个克隆的不需要的部分,但我想这会给我一个完整的树,当检查旧版本等.这可能是可以接受的,但我宁愿能够假装两个存储库没有共享历史记录.
为了说清楚,我有以下结构:
XYZ/
.git/
XY1/
ABC/
XY2/
Run Code Online (Sandbox Code Playgroud)
但我想这样做:
XYZ/
.git/
XY1/
XY2/
ABC/
.git/
ABC/
Run Code Online (Sandbox Code Playgroud) 我最近注意到我的文本编辑使用的项目文件(以及其他一些垃圾)都添加了项目的git存储库.由于它们实际上不是项目的一部分,我想删除它们,但git rm不会从存储库中删除旧版本,我找不到任何看起来很有希望的东西.
你如何清理你的提交树(不是真正的git分支)中未使用的侧枝?
示例(树,伪提交哈希,提交消息,可选[指针]):
* 0001 last commit [master] [origin/master] [HEAD]
| * 0002 old, unused merge
|/|
* | 0003 some remote commits
* | 0004 another commit from remote
| * 0005 old, unused commits
|/
* 0006 old tree
Run Code Online (Sandbox Code Playgroud)
路径0001 0003,0004,0006应该保持不变,但是提交0002和0005没有用,并且没有任何好处.你如何删除提交0002和0005?
在git中合并时如何强制"我的更改"?有人把所有bin目录放在git中,现在我有一个可怕的合并冲突:(
现在它说如下:
当你解决了这个问题后,运行"git rebase --continue".如果您希望跳过此补丁,请运行"git rebase --skip".要恢复原始分支并停止重新运行,请运行"git rebase --abort".
我不想合并,我只是想使用我的更改删除所有这些文件.
编辑:大多数文件已成功合并,通过自动合并或因为没有冲突.但是仍然有很多像下面这样的存在.
警告:无法合并二进制文件:src/reports/obj/Debug/TempPE/GroupMailDS.Designer.cs.dll(HEAD与添加的gitignore)