आप विध्वंस एक दूरस्थ शाखा के इतिहास संपादित करना चाहते हैं (उदाहरण के लिए rebase
/amend
), आपके बदलाव स्थानीय बनाना और फिर git push --force
है। कभी-कभी यह काम नहीं करता है (भंडार प्रशासक इस सुविधा को अक्षम कर सकते हैं); उस स्थिति में, आप git push origin :my_branch
के साथ रिमोट शाखा को हटाने का प्रयास कर सकते हैं और फिर इसे git push origin my_branch
के साथ फिर से दबा सकते हैं। अन्यथा आप git revert
का उपयोग कर सकते हैं, यदि आप किसी टीम में काम करते हैं तो अनुशंसित तरीका है (अंगूठे का नियम यह है कि प्रकाशित इतिहास को संशोधित नहीं किया जाना चाहिए)।
यहाँ एक उदाहरण (this Github repository का उपयोग) है:
$ touch SOMETHING
$ emacs SOMETHING
$ git add SOMETHING
$ git ci -m SOMETHING
[master d14aaa0] SOMETHING
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 SOMETHING
$ git push
Counting objects: 8, done.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (6/6), 611 bytes, done.
Total 6 (delta 3), reused 0 (delta 0)
To [email protected]:23Skidoo/ghc-parmake.git
53f836a..d14aaa0 master -> master
$ git reset --hard "HEAD~"
HEAD is now at 7b2dc96 TODO update.
$ git push --force
Total 0 (delta 0), reused 0 (delta 0)
To [email protected]:23Skidoo/ghc-parmake.git
+ d14aaa0...7b2dc96 master -> master (forced update)
commit history को देखते हुए, आप उस प्रतिबद्ध d14aaa0 अनुपस्थित है देख सकते हैं।
स्रोत
2011-10-19 01:56:31