এসভিএন দিয়ে কোনও প্রতিশ্রুতি রিভার্স-মার্জ করা সহজ, তবে গিটের সাথে এটি কীভাবে করবেন?
এসভিএন দিয়ে কোনও প্রতিশ্রুতি রিভার্স-মার্জ করা সহজ, তবে গিটের সাথে এটি কীভাবে করবেন?
উত্তর:
একটি নতুন প্রতিশ্রুতি তৈরি করতে যা অতীতের প্রতিশ্রুতিগুলির পরিবর্তনগুলিকে 'পূর্বাবস্থায়' ফেলে দেয়:
$ git revert <commit>
প্রত্যাবর্তন এবং পুনরায় সেট করার মাধ্যমে অতীতে একটি স্বেচ্ছাসেবী বিন্দু থেকে আসলে প্রতিশ্রুতি সরিয়ে ফেলাও সম্ভব, তবে আপনি যদি ইতিমধ্যে আপনার প্রতিশ্রুতি অন্য কোনও ভাণ্ডারে ঠেকিয়ে থাকেন (বা অন্য কেউ আপনার কাছ থেকে সরিয়ে নিয়েছে) তবে আপনি সত্যই তা করতে চান না ।
-m <parent number>
করতে হবে git revert
তা নির্দিষ্ট করার জন্য আপনাকে সম্ভবত বিকল্প সরবরাহ করতে হবে। আপনি যদি অপ্রকাশিত ইতিহাসের মার্জটিকে পূর্বাবস্থায় ফেরাতে চান তবে ব্যবহার করুন git reset --hard HEAD^1
।
-m
অর্থ আন-মার্জ হওয়া শাখা থেকে ভবিষ্যতের একত্রীকরণটি সেই মার্জ হওয়ার আগে থেকে পরিবর্তনগুলি অন্তর্ভুক্ত করবে না! আন-মার্জ হওয়া শাখাকে পুনরায় মার্জ করার উপযুক্ত উপায়গুলির জন্য schacon.github.com/git/howto/revert-a-faulty- विस.txt দেখুন ।
প্রত্যাবর্তন করার জন্য একটি একত্রীকরণ কমিট, আপনি ব্যবহার করতে প্রয়োজন: git revert -m <parent number>
। সুতরাং উদাহরণস্বরূপ, ১ নম্বর ব্যবহার করে পিতামাতাকে ব্যবহার করে সাম্প্রতিকতম মার্জ কমিটকে ফিরিয়ে আনতে:
git revert -m 1 HEAD
শেষ প্রতিশ্রুতি দেওয়ার আগে মার্জ কমিটিকে পূর্বাবস্থায় ফেরাতে, আপনি যা করবেন:
git revert -m 1 HEAD^
git show <merge commit SHA1>
পিতামাতাকে দেখতে ব্যবহার করুন , নম্বরগুলি ক্রমগুলি প্রদর্শিত হয় যেমন তারাMerge: e4c54b3 4725ad2
গিট একীভূত ডকুমেন্টেশন: http://schacon.github.com/git/git-rc.html
গিট মার্জ আলোচনা (বিভ্রান্তিকর তবে খুব বিস্তারিত): http://schacon.github.com/git/howto/revert-a-faulty- विस.txt
git show <merge commit SHA1>
পিতামাতাদের দেখতে ব্যবহার করুন , নম্বরটি তাদের প্রদর্শিত ক্রম যেমনMerge: e4c54b3 4725ad2
git revert -m 1 SHA1
এই আদেশটি আমার পক্ষে একীভূত প্রতিশ্রুতি ফিরিয়ে আনার জন্য কাজ করেছিল যা মাথার আগে বেশ কয়েকটি মার্জ কমিট ছিল এবং নীচে অনেক কমিট ছিল।
git reset --hard HEAD^
মার্জ পরিবর্তনগুলি ফিরিয়ে নিতে উপরের কমান্ডটি ব্যবহার করুন।
আপনি যদি প্রতিশ্রুতিবদ্ধ না করতে চান বা পরে প্রতিশ্রুতিবদ্ধ না করতে চান (প্রতিশ্রুতি বার্তাটি এখনও আপনার জন্য প্রস্তুত থাকবে, যা আপনি সম্পাদনা করতে পারেন):
git revert -n <commit>