এই ক্ষেত্রে আমি যা করি তা হ'ল:
সার্ভারে, কার্সারটিকে সর্বশেষ পরিচিত ভাল প্রতিশ্রুতিতে ফিরে যান:
git push -f origin <last_known_good_commit>:<branch_name>
স্থানীয়ভাবে, একই করুন:
git reset --hard <last_known_good_commit>
# ^^^^^^
# optional
my_new_branchআমি এই উদ্দেশ্যে তৈরি করা একটি শাখায় একটি সম্পূর্ণ উদাহরণ দেখুন :
$ git branch
my_new_branch
এটিতে কিছু স্টাফ যুক্ত করার পরে সাম্প্রতিক ইতিহাস myfile.py:
$ git log
commit 80143bcaaca77963a47c211a9cbe664d5448d546
Author: me
Date: Wed Mar 23 12:48:03 2016 +0100
Adding new stuff in myfile.py
commit b4zad078237fa48746a4feb6517fa409f6bf238e
Author: me
Date: Tue Mar 18 12:46:59 2016 +0100
Initial commit
আমি শেষ প্রতিশ্রুতি থেকে মুক্তি পেতে চাই, যা ইতিমধ্যে ঠেলাঠেলি হয়েছিল, তাই আমি চালিয়ে যাচ্ছি:
$ git push -f origin b4zad078237fa48746a4feb6517fa409f6bf238e:my_new_branch
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:me/myrepo.git
+ 80143bc...b4zad07 b4zad078237fa48746a4feb6517fa409f6bf238e -> my_new_branch (forced update)
নিস! এখন আমি সেই ফাইলটি দেখছি যা সেই প্রতিশ্রুতিতে পরিবর্তিত হয়েছিল ( myfile.py) "প্রতিশ্রুতি দেওয়ার জন্য পর্যায়বদ্ধ নয়" শোতে:
$ git status
On branch my_new_branch
Your branch is up-to-date with 'origin/my_new_branch'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: myfile.py
no changes added to commit (use "git add" and/or "git commit -a")
যেহেতু আমি এই পরিবর্তনগুলি চাই না, তাই আমি স্থানীয়ভাবে স্থানীয়ভাবে কার্সারটিও সরিয়ে নিয়েছি:
$ git reset --hard b4zad078237fa48746a4feb6517fa409f6bf238e
HEAD is now at b4zad07 Initial commit
সুতরাং এখন স্থানীয় এবং দূরবর্তী উভয় ক্ষেত্রেই হেড পূর্ববর্তী প্রতিশ্রুতিতে রয়েছে:
$ git log
commit b4zad078237fa48746a4feb6517fa409f6bf238e
Author: me
Date: Tue Mar 18 12:46:59 2016 +0100
Initial commit