मेरा यहाँ भी वही सवाल था जो रूट डाइरेक्टरी में न्यू git रिपॉजिटरी को एक उप-डायरेक्टरी में मौजूद रिपोजिटरी को सब्सक्राइब करने के लिए होता है।
मैंने इस उत्तर का यहाँ अनुसरण किया है: रूट डायरेक्टरी में नया git रिपॉजिटरी एक उप-निर्देशिका में मौजूद रिपॉजिटरी को सब्सक्राइब करने के लिए
अब, 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 रेपो के रूट को प्रोजेक्ट-रूट में ले जाते हैं:
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
और सभी संबद्ध इतिहास से कैसे छुटकारा मिलेगा ?