किसी कारण से, मैं अब धक्का नहीं दे सकता, जबकि मैं कल कर सकता था। शायद मैं विन्यास या कुछ और के साथ गड़बड़ कर दी।
ऐसा ही होता है:
जब मैं git पुश ओरिजिन मास्टर का उपयोग करता हूं
मेरी वर्किंग डायरेक्टरी और रिमोट रिपॉजिटरी कैसी दिखती है:
किसी कारण से, मैं अब धक्का नहीं दे सकता, जबकि मैं कल कर सकता था। शायद मैं विन्यास या कुछ और के साथ गड़बड़ कर दी।
ऐसा ही होता है:
जब मैं git पुश ओरिजिन मास्टर का उपयोग करता हूं
मेरी वर्किंग डायरेक्टरी और रिमोट रिपॉजिटरी कैसी दिखती है:
जवाबों:
यदि GitHub रेपो ने नए कमिट्स को देखा है, तो जब आप स्थानीय रूप से काम कर रहे थे, तो मैं इसका उपयोग करने की सलाह दूंगा:
git pull --rebase
git push
पूर्ण वाक्यविन्यास है:
git pull --rebase origin master
git push origin master
Git के साथ 2.6+ (सितंबर 2015), एक बार किए जाने के बाद (एक बार)
git config --global pull.rebase true
git config --global rebase.autoStash true
एक सरल git pull
पर्याप्त होगा।
(नोट: Git 2.27 Q2 2020 के साथ , merge.autostash
यह आपके नियमित खींचने के लिए भी उपलब्ध है, बिना रीबेस के)
इस तरह, आप (पुन: चलाने के हैं --rebase
के नव अद्यतन शीर्ष पर भाग) अपने स्थानीय करता origin/master
(या origin/yourBranch
: git pull origin yourBranch
)।
अध्याय 6 में और अधिक पूर्ण उदाहरण देखिए Git Pocket Book के पुनर्खरीद के साथ खींचिए ।
मैं एक की सिफारिश करेंगे:
# add and commit first
git push -u origin master
यह आपके स्थानीय मास्टर शाखा और इसके अपस्ट्रीम शाखा के बीच एक ट्रैकिंग संबंध स्थापित करेगा।
उसके बाद, भविष्य में उस शाखा के लिए कोई भी धक्का दिया जा सकता है:
git push
" मुझे एक नई शाखा को स्पष्ट रूप से पुश करने की आवश्यकता क्यों है? " देखें।
चूंकि ओपी पहले से ही रीसेट कर चुका है और इसके लिए अपनी प्रतिबद्धता फिर से तैयार कर रहा है origin/master
:
git reset --mixed origin/master
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git push origin master
कोई जरूरत नहीं है pull --rebase
।
नोट: git reset --mixed origin/master
यह भी लिखा जा सकता है git reset origin/master
, क्योंकि --mixed
उपयोग करते समय विकल्प डिफ़ॉल्ट होता है git reset
।
क्या किसी ने कोशिश की:
git push -f origin master
इससे समस्या का समाधान होना चाहिए।
संपादित करें: नीचे @Mehdi की टिप्पणी के आधार पर मुझे कुछ के बारे में स्पष्ट करने की आवश्यकता है
—force pushing
। ऊपर दिया गया git कमांड केवल पहले कमिट के लिए सुरक्षित रूप से काम करता है। यदि पहले से ही कमिट थे, तो पहले से अनुरोध या शाखाएं खींचें, यह सभी को रीसेट करता है और इसे शून्य से सेट करता है। यदि हां, तो कृपया बेहतर समाधान के लिए @VonC के विस्तृत उत्तर को देखें।
-f
/ --force
यह हमेशा के --force-with-lease
बजाय उपयोग करने के लिए सुरक्षित है , जो नीचे की ओर परिवर्तन है कि धक्का द्वारा बंद हो जाएगा अगर गर्भपात होगा। --force-with-lease
रोजमर्रा की रिबासिंग की बहुत सारी स्थितियों के लिए आवश्यक है, लेकिन --force
लगभग कभी भी ज़रूरत नहीं होनी चाहिए।
यदि आपने अभी उपयोग किया है git init
और अपनी फ़ाइलों को git add .
या कुछ समान के साथ जोड़ा है और अपनी दूरस्थ शाखा को जोड़ा है, तो हो सकता है कि आपने अभी git commit -m 'commit message'
तक दूरस्थ रूप से पुश करने के लिए स्थानीय रूप से कुछ भी नहीं किया हो ... मुझे बस यह त्रुटि हुई थी और वह थी मेरी मुद्दा।
मुझे भी यही समस्या थी। मुझे यह समस्या हो रही थी क्योंकि मैंने कोई भी कमिट नहीं किया था, जो कि शुरुआती कमिटमेंट भी नहीं था और फिर भी मैं पुश करने की कोशिश कर रहा था।
एक बार मैंने किया git commit -m "your msg"
और फिर सबकुछ ठीक हो गया।
अपनी शाखा का नाम बदलें और फिर धक्का दें, जैसे:
git branch -m new-name
git push -u new-name
इसने मेरे लिए काम किया।
my-branch_wont_push
:। एक बार जब मैंने इसका नाम बदल दिया my_branch_wont_push
, तो git push -u origin my_branch_wont_push
मेरे लिए काम किया।
मैं इस समस्या का समाधान जीथब मदद में ढूंढता हूं।
आप इसे देख सकते हैं: गैर-फास्ट-फ़ॉरवर्ड त्रुटियों से निपटना
इसे कहते हैं:
आप दूरस्थ शाखा पर किए गए परिवर्तनों को स्थानीय स्तर पर किए गए परिवर्तनों के साथ लाकर और विलय करके इसे ठीक कर सकते हैं:
$ git fetch origin
# Fetches updates made to an online repository
$ git merge origin branch
# Merges updates made online with your local work
या, आप बस एक ही बार में दोनों कमांड्स करने के लिए गिट पुल का उपयोग कर सकते हैं:
$ git pull origin branch
# Grabs online updates and merges them with your local work
git init
git remote add origin https://gitlab.com/crew-chief-systems/bot
git remote -v
(वर्तमान भंडार की जाँच के लिए)
git add -A
(सभी फाइलें जोड़ें)
git commit -m 'Added my project'
git pull --rebase origin master
git push origin master
मैंने एक ही समस्या का सामना किया था, नीचे दिए गए चरणों के साथ तय किया गया था।
git init
git add .
git commit -m 'Add your commit message'
git remote add origin https://User_name@bitbucket.org/User_name/sample.git
(उपरोक्त url https: //User_name@bitbucket.org/User_name/sample.git आपकी बिट बाल्टी प्रोजेक्ट url को संदर्भित करता है)
git push -u origin master
संकेत
जाँच करें कि क्या आपका git हब खाता आपके स्थानीय git के साथ लिंक का उपयोग करके है:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
धक्का देने से पहले आपको परिवर्तनों को जोड़ना या करना होगा git push -f origin master
git push origin {your_local_branch}:{your_remote_branch}
यदि आपकी स्थानीय शाखा और दूरस्थ शाखा एक ही नाम साझा करते हैं, तो क्या आप अपने स्थानीय शाखा के नाम को छोड़ सकते हैं, बस उपयोग करें git push {your_remote_branch}
। अन्यथा यह इस त्रुटि को फेंक देगा।
यह तब हो सकता है जब आपके पास कोई फाइल न हो। पाठ फ़ाइल बनाने का प्रयास करें, फिर निम्नलिखित कमांड का पालन करें
git add .
git commit -m "first commit"
git push --set-upstream origin master
मैंने GitHub में एक खाली रेपो बनाया, और स्थानीय रूप से मेरा कोड है। मुझे अब उसी मुद्दे का सामना करना पड़ा, जैसा कि मैंने नीचे दिए गए अनुक्रम का पालन किया,
git init
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git add .
git push -u origin master
ISSUE WAS: मेरे पास मेरे पास मौजूद फ़ाइलों के मंचन से पहले करने की कोशिश की।
तो हम फ़ाइलें और कम समिति का उपयोग करने की जरूरत है।
यह सही क्रम है।
git init
git add .
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git push -u origin master
चूंकि मैं पहले गलत अनुक्रम को निष्पादित करता हूं, मैं बस नीचे दिए गए आदेशों को निष्पादित करता हूं
git add .
git commit -m 'Initial Commit'
git push -u origin master
यकीन नहीं होता कि यह लागू होता है, लेकिन मेरे लिए यह तय था कि गिट इनिट के बाद स्थानीय स्तर पर कुछ किया जाए। फिर मैंने रिमोट का उपयोग करके धक्का दिया - परेशान-अपस्ट्रीम ...
मेरे लिए हल की गई नई शाखा बनाना:
git checkout -b <nameOfNewBranch>
जैसा कि अपेक्षित था कि पिछली शाखा को विलय करने की कोई आवश्यकता नहीं थी क्योंकि पूरी तरह से नए में समाहित थी।
git push origin feature22-fix
, लेकिन feature22-fix
न तो स्थानीय और न ही रिमोट से बाहर निकला, इसलिए मुझे पहले शाखा को स्थानीय रूप से चेकआउट करना पड़ा, फिर धक्का दिया
यदि आप किसी मौजूदा GitHub रिपॉजिटरी के साथ डायरेक्टरी इनिशियलाइज़ करने का प्रयास कर रहे हैं, तो आपको यह सुनिश्चित करना चाहिए कि आप बदलाव कर रहे हैं।
फ़ाइल बनाने का प्रयास करें:
touch initial
git add initial
git commit -m "initial commit"
git push -u origin master
यह प्रारंभिक नाम की एक फ़ाइल रखेगा जिसे आप बाद में हटा सकते हैं।
आशा है कि यह उत्तर मदद करता है! सौभाग्य!
मेरे मामले में, यह मेरा husky
पैकेज था जो धक्का को खारिज करता है।
> husky - pre-push hook failed (add --no-verify to bypass)
> husky - to debug, use 'npm run prepush'
error: failed to push some refs to 'https://username@bitbucket.org/username/my-api.git'
इसे जबरदस्ती धकेलने के लिए, बस दौड़ें
git push origin master --no-verify
मैं npm run prepush
त्रुटि को डीबग करने के लिए दौड़ा , और यही कारण था:
npm ERR! code ELOCKVERIFY
npm ERR! Errors were found in your npm-shrinkwrap.json, run npm install to fix them.
npm ERR! Invalid: lock file's loopback-utils@0.8.3 does not satisfy loopback-utils@^0.9.0
दौड़ो npm install
और इसे कम करो, और समस्या तय हो गई है।
यह करें
git rm --cached *
git add .
git commit -m"upload"
git push --set-upstream origin master
हैप्पी कोडिंग!
इस git कमांड को आज़माएं,
git push origin master –f
git push origin master --force
मैं मौजूदा टाइपो 'अविकसित' शाखा को आगे बढ़ा रहा था, जिसकी जांच अभी तक मेरे पास नहीं थी और इसके बजाय, मैं 'लिफाफा' नामक शाखा को आगे बढ़ाना चाहता था। इसलिए निश्चित रूप से धक्का देने के लिए शाखा को स्थानीय कामकाजी कॉपी में मौजूदा / चेकआउट होना चाहिए, इसलिए वह त्रुटि है, टाइपो बनाने के लिए नहीं।