更改git结构
问题描述:
我想以某种方式更改git目录结构。目前的架构是一样更改git结构
VL(repo) .git (hidden) code files ...... ..... I want it like html(repo) .git VL code files ...... ......
我有一个解决方案,以存档当前回购,然后创建与上述结构的新的回购协议。但这种方法的坏处在于它删除了以前的所有历史记录。有没有更好的解决方案?
答
将根文件夹的名称从VL
更改为html
应该没问题,因为git只能在低于该级别的目录中工作。
那么,剩下的就是引进低于html
文件夹中的文件夹VL
和移动所有code files
有:
mkdir VL
git mv <all your code> VL
git commit -m "moved all my code under VL"
使用git mv
你告诉你感动的事情git的,所以它仍然可以保持跟踪历史。
编辑:
作为Benjol注意到他的意见,使用git mv
时并不需要。你可以通过复制<all your code>
到VL
达到相同的,然后做
git add VL
git rm <all your code>
git commit -m "moved all my code under VL
Git是足够聪明的认识到这场运动。
答
手动移动您的代码。然后,
git add -A
git commit -m "moved code"
完成。
即使你不使用'git mv',git也应该接受文件只被移动而没有被改变的事实。 – Benjol 2012-02-15 12:55:56
@ Benjol:是的,当然你是对的。只是想给OP提供信息,说明他的用例有一个内置命令。更新答案。谢谢。 – eckes 2012-02-15 13:07:21
请注意,历史将通过“git log --follow”进行更改,但这仅适用于单个文件。 – yoyo 2014-07-09 03:41:51