17

मैंने लोगों को यह सलाह दी है कि सभी डेवलपर्स C:\project\.git\rr-cache से साझा मशीन \\server\rr-cache पर अपनी मशीन पर एक सिम्लिंक स्थापित करें।साझा करना कैश

हालांकि, यह संभव है कि यह गिट रिपोजिटरी में इसे शामिल करके फ़ोल्डर को साझा करने के लिए अधिक सुविधाजनक लगेगा। मैंने लोगों को इस समाधान का जिक्र देखा है, लेकिन वास्तव में यह नहीं करना है।

कोई विचार?

+0

यदि आपको एक दूसरे के साथ अपना रीयर कैश साझा करने की आवश्यकता है, तो आप अक्सर शाखाओं को धक्का दे सकते हैं। मुझे लगता है कि इस समस्या का मानक समाधान कैश को साझा नहीं करना है, लेकिन जो दिखाई दे रहा है उसे कभी भी पुनर्जीवित नहीं करना है। तब हर कोई अपनी निजी शाखाओं से अपने स्वयं के रिबेस मुद्दों को साफ कर सकता है क्योंकि वे शायद जानते हैं कि वे क्या कर रहे हैं। –

+1

आप आरआर-कैश को भंडार में शामिल नहीं कर सकते हैं, क्योंकि यह पहले से ही इसमें है। यदि आपने पूछा कि क्या यह इतिहास का हिस्सा बनाना संभव है: हाँ, लेकिन यह एक अच्छा विचार नहीं दिखता है (यह इतिहास बदलने के कारण बदलता है, न कि सामग्री को बदलने के कारण, जो गिट ट्रैक करता है, और आपके पास है प्रत्येक नए रेपो में ट्रैक किए गए आरआर-कैश को सेट करने के लिए) – fork0

+0

यह सच है, लेकिन यदि आप इसे स्क्रिप्ट के माध्यम से सेट करते हैं, तो आप जाने के लिए अच्छे हैं। –

उत्तर

14

इसे एक समर्पित शाखा के माध्यम से साझा किया जा सकता है। यदि आप उस शाखा पर कोई संघर्ष करते हैं और इसे हल करते हैं तो आप इसे रोकना चाहते हैं क्योंकि इसका मतलब है कि एक ही संघर्ष को दो अलग-अलग तरीकों से हल करने का प्रयास किया गया था। कहने की जरूरत नहीं है, यह नियम के लिए अपवाद होगा।

इस प्रश्न पर अन्य लोगों के लिए, यह देखने के लिए Google "फ़ीचर प्रति फ़ीचर" कहां उपयोगी है।

हुक सामान्य आरआर-कैश शाखा को सिंक करने में स्वचालित कर सकते हैं।

यहां आपको स्वचालित करने की आवश्यकता है। रीरेशियरिंग एक उदाहरण शाखा है जिसे आप विलय कर रहे हैं, आरआर-कैश एक शाखा है जो संकल्पों को संग्रहित करती है; इन सभी चरणों को बिना किसी मुद्दे के काम किया:

git checkout --orphan rereresharing start-sprint-1 
git --git-dir=.git --work-tree=.git/rr-cache checkout -b rr-cache 
git --git-dir=.git --work-tree=.git/rr-cache add -A 
git --git-dir=.git --work-tree=.git/rr-cache commit -m "initial cache" 
git clean -xdf 
git checkout rereresharing 
git merge --no-ff FTR-1 
git merge --no-ff FTR-2 
vim opinion.txt # resolve conflict 
git add -A 
git commit 
git checkout rr-cache 
git --git-dir=.git --work-tree=.git/rr-cache add -A 
git --git-dir=.git --work-tree=.git/rr-cache commit -m "resolution" 
git remote add origin ../bpf-central 
git push origin rereresharing rr-cache 
cd - # assumes you were previously in the other local repo 
git remote add origin ../bpf-central 
git fetch 
git branch rr-cache origin/rr-cache 
ls .git/rr-cache 
git --git-dir=.git --work-tree=.git/rr-cache checkout rr-cache -- . 
ls .git/rr-cache 

अब आप एक ही विलय करने के लिए तैयार हैं और आप अपने संघर्ष को हल करेंगे।

+3

आप आरआर-कैश के लिए डिस्कनेक्ट की गई शाखा बना सकते हैं, यानी 'चेकआउट --ऑर्फन आरआर-कैश'। अच्छा – kan

+0

बहुत बढ़िया लग रहा है! मैं जवाब अपडेट करूंगा .. –

+0

-b और --orphan गिट के नवीनतम संस्करणों में संगत नहीं हैं। –

4

शायद rr-cache साझा करने के बजाय rerere-train.sh का उपयोग कर मौजूदा गिट इतिहास से संघर्ष समाधानों को सीखना होगा।

+0

यह कब चलाया जाएगा? जब भी एक विलय संघर्ष का सामना करना पड़ता है? –

+1

आपको किसी भी समय किसी अन्य व्यक्ति को किसी संघर्ष को हल करने के बजाय इसे चलाने की आवश्यकता होगी और आप गिट को उस संकल्प को स्थानीय रूप से पुन: उपयोग करने में सक्षम करना चाहते हैं। – sschuberth

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^