我有一个文件夹已经在 git 下一段时间了,我需要将 git 'repo' 文件夹向上移动一个文件夹,例如我的文件夹是:
/project/data/
/project/src/.git
我需要将其移至:
/project/data/
/project/src/
/project/.git
编辑:
我在那里拥有该存储库已经有一段时间了,它有一个我想保留的预先存在的历史记录,我还需要在服务器上移动该存储库(与本地计算机的结构完全相同)
最佳答案
如果您没有预先存在的历史记录,只想在正确的位置重新启动而不移动太多文件,那么评论中提到的重复问题可以为您提供正确的答案。
如果您想保留现有历史记录,但假装这一切都发生在更高的目录中,则可以使用以下方法:
cd /project/src
git filter-branch --tree-filter 'mkdir src; git mv -k * .gitignore src'
cd ..
mv src junk
mv junk/src src
mv junk/.git .git
filter-branch
命令会重写您的历史记录行,以便所有操作都发生在 src/
层次结构下。其余的将事情移回原位。如果周围有未跟踪的文件,它们最终将被留在 junk/
命名空间中。
警告:我使用git mv -k .gitignore src
作为过滤器,因为这是一种快速而简单的方法,但它无法移动您的任何点文件可能有。 (在这种情况下,请将它们添加到命令中。)正确的方法是使用 git ls-files
作为索引列表,但要正确使用它非常棘手就目前的情况来看,如果你能避免它,就一定要这么做。
关于git - 将 git 移动到更高的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052501/