我有同样的问题,这里问:New git repository in root directory to subsume an exist repository in a sub-directory在filter-branch --tree-filter之后从git repo中删除refs/original/heads/master?
我跟着这个答案在这里:New git repository in root directory to subsume an exist repository in a sub-directory
现在,gitk --all
显示了两个历史:一个在当前master
高潮,和一个命名original/refs/heads/master
。
我不知道这第二个历史是什么,或者如何从回购中删除它。我的资源库中不需要两个历史记录。
我该如何摆脱它?
要重现自己:
mkdir -p project-root/path/to/module
cd project-root/path/to/module
mkdir dir1 dir2 dir3
for dir in * ; do touch $dir/source-file-$dir.py ; done
git init
git add .
git commit -m 'Initial commit'
现在我们有原来的海报的问题。让我们用上面链接的答案混帐回购协议的根移动到项目根:
git filter-branch --tree-filter 'mkdir -p path/to/module ; git mv dir1 dir2 dir3 path/to/module' HEAD
rm -rf path
cd ../../../ # Now PWD is project-root
mv path/to/module/.git .
git reset --hard
现在,看到我目前的问题:
gitk --all &
git show-ref
如何摆脱refs/original/heads/master
和所有相关的历史?
可能重复[如何删除运行git过滤后的悠久历史-branch?](http://stackoverflow.com/questions/5984428/how-to-delete-the-history-after-running-git-filter-branch) – user