我有同樣的問題,這裏問: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