यदि मैं rsync -a
या cp -R
का उपयोग करके एक ट्रैक किए गए फ़ोल्डर की एक प्रति बना देता हूं, तो क्या मैं प्रतिलिपि का उपयोग कर सकता हूं जैसे कि यह एक गिट क्लोन था, या क्या यह अजीब समस्याओं के सभी प्रकार का कारण बनता है? यह सब मेरे कंप्यूटर पर चल रहा है, इसलिए कोई भी भंडार तक नहीं पहुंच रहा है।क्या कॉपी किए गए गिट रेपो का उपयोग करना सुरक्षित है?
जाहिर है, गिट-क्लोन डीआईआर को पता है कि इसकी प्रतिलिपि बनाई गई थी, इसलिए मैं git pull
को स्रोत निर्दिष्ट किए बिना कर सकता हूं, लेकिन मुझे लगता है कि मैं इसके बिना जीने के लिए तैयार हूं, क्या मुझे चिंता करने की ज़रूरत है?
एक प्रयोग के रूप में, मैंने एक छोटी परियोजना बनाई, clone
डी और rsync
इसे संपादित करें, और diff
परिणामी फ़ोल्डरों को संपादित करें। यहाँ परिणाम हैं:
[email protected] ~
$ git clone project/.git project2
Initialized empty Git repository in /home/itsadok/project2/.git/
[email protected] ~
$ rsync -a project/ project3/
[email protected] ~
$ diff -r project2 project3
Only in project3/.git: COMMIT_EDITMSG
diff -r project2/.git/config project3/.git/config
7,12d6
< [remote "origin"]
< url = /home/itsadok/project/.git
< fetch = +refs/heads/*:refs/remotes/origin/*
< [branch "master"]
< remote = origin
< merge = refs/heads/master
Files project2/.git/index and project3/.git/index differ
diff -r project2/.git/logs/HEAD project3/.git/logs/HEAD
1c1
< 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <[email protected](none)> 1242131284 +0300 clone: from /home/itsadok/project/.git
---
> 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <[email protected](none)> 1242131066 +0300 commit (initial): first commit
diff -r project2/.git/logs/refs/heads/master project3/.git/logs/refs/heads/master
1c1
< 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <[email protected](none)> 1242131284 +0300 clone: from /home/itsadok/project/.git
---
> 0000000000000000000000000000000000000000 bf6be23d68d0ede45aca7479795693bfba76e73a itsadok <[email protected](none)> 1242131066 +0300 commit (initial): first commit
Only in project2/.git/logs/refs: remotes
Only in project2/.git: packed-refs
Only in project2/.git/refs: remotes
वहाँ काफी अंतर का एक सा है, लेकिन इसमें से अधिकांश मूल के संदर्भ के बारे में हो रहा है। क्या मैं सही हू?
मैं जवाब पता नहीं है, लेकिन मुझे लगता है कि चाहते हैं यह ठीक होगा। मैं बहुत उत्सुक हूं कि आपको क्यों चाहिए (चाहते हैं?) हालांकि। –
मेरे लिए दो बार पहले से उत्पन्न होने की आवश्यकता है, एक बार बैकअप फ़ोल्डर के लिए जिस पर मैंने कुछ बदलाव किए थे, और एक बार जब मैं एक रेपो क्लोन करना चाहता था जो एक एनएटी के पीछे एक विंडोज मशीन पर था जिस पर एसएसडी नहीं था ... लेकिन ज्यादातर, मैं गिट काम करता है की बेहतर समझ लेना चाहता हूं। – itsadok