मान लीजिए कि मेरे पास 5 स्थानीय काम हैं। मैं केवल उनमें से 2 को केंद्रीकृत रेपो (एक एसवीएन-शैली वर्कफ़्लो का उपयोग करके) में धक्का देना चाहता हूं। मैं यह कैसे करु?आप अपने कुछ स्थानीय गिट्स को कैसे दबाते हैं?
यह काम नहीं किया:
git checkout HEAD~3 #set head to three commits ago
git push #attempt push from that head
बस इतना ही 5 स्थानीय प्रतिबद्ध धक्का समाप्त होता है।
मुझे लगता है कि मैं वास्तव में अपने कामों को पूर्ववत करने के लिए गिट रीसेट कर सकता हूं, इसके बाद गिट स्टैश और उसके बाद गिट पुश - लेकिन मुझे पहले से ही लिखित संदेश और फाइल व्यवस्थित कर दी गई हैं और मैं उन्हें फिर से नहीं लेना चाहता हूं।
मेरी भावना यह है कि धक्का या रीसेट करने के लिए पारित कुछ झंडा काम करेगा।
यदि यह मदद करता है, यहाँ मेरी Git config
[ramanujan:~/myrepo/.git]$cat config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://server/git/myrepo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
नोट: आपको 'मास्टर ~ 3' का उपयोग करने की आवश्यकता नहीं है। वांछित "अप टू" प्रतिबद्धता का कोई भी संदर्भ समान रूप से मान्य है, जैसे 'HEAD ~ 3' या' HEAD ~~~ ', या विशिष्ट SHA, या एक टैग जो प्रतिबद्ध करता है। – Kaz
अच्छी चीजें। हालांकि एक चेतावनी: ये उदाहरण मूल मास्टर को धक्का देते हैं। यदि आप इस समाधान की प्रतिलिपि बना रहे हैं और चिपका रहे हैं, तो आप गलती से मास्टर शाखा को अपडेट कर सकते हैं। (बेशक, आपको हमेशा 'गिट पुश' जारी करने से पहले सावधान रहना चाहिए और अपने आदेश को दोबारा जांचना चाहिए ...) – nofinator
ऐसा प्रतीत होता है कि यह प्रतिबद्धता को धक्का देता है, लेकिन शाखा को दूरस्थ रूप से नहीं जोड़ता है। – Nateowami