ฉันมีคำถามเดียวกันกับที่ถามที่นี่: ที่เก็บ git ใหม่ในไดเรกทอรีรากเพื่อใช้พื้นที่เก็บข้อมูลที่มีอยู่ในไดเรกทอรีย่อย
ฉันได้ทำตามคำตอบนี้ที่นี่: ที่เก็บ git ใหม่ในไดเรกทอรีรากเพื่อใช้พื้นที่เก็บข้อมูลที่มีอยู่ในไดเรกทอรีย่อย
ตอนนี้gitk --all
แสดงให้เห็นว่าทั้งสองประวัติศาสตร์: หนึ่งสูงสุดในปัจจุบันและเป็นหนึ่งในชื่อmaster
original/refs/heads/master
ฉันไม่รู้ว่าประวัติที่สองนี้คืออะไรหรือจะลบออกจาก repo ได้อย่างไร ฉันไม่ต้องการประวัติสองอันในที่เก็บของฉัน
ฉันจะกำจัดมันได้อย่างไร
ในการทำซ้ำตัวเอง:
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 repo ไปที่ project-root โดยใช้คำตอบที่ลิงค์ด้านบน:
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
และประวัติที่เกี่ยวข้องทั้งหมดได้อย่างไร