git - গিটহাব




কেন গিট একটি অনুপস্থিত-এম বিকল্প সম্পর্কে অভিযোগ ফিরে? (2)

আমার এই সমস্যা ছিল, সমাধানটি গ্রাফকে দেখতে (gitk ব্যবহার করে) দেখতে এবং আমার নিম্নলিখিতটি দেখতে ছিল:

*   commit I want to cherry-pick (x)
|\  
| * branch I want to cherry-pick to (y)
* | 
|/  
* common parent (x)

আমি এখন যে আমি বুঝতে চাই

git cherry-pick -m 2 mycommitsha

এটি কারণ -m 1 সাধারণ পিতামাতার উপর ভিত্তি করে একত্রিত হবে যেখানে- -m 2 শাখা Y- এর উপর ভিত্তি করে মার্জ, যা আমি চেরি-বেছে নিতে চাই।

তাই আমি অন্য লোকেদের সাথে একটি প্রকল্পে কাজ করছি, এবং একাধিক গীথাব ফার্ক কাজ করছে। কেউ শুধু একটি সমস্যার জন্য একটি ফিক্স তৈরি করে এবং আমি তার কাঁটা দিয়ে মার্জ, কিন্তু তারপর আমি বুঝতে পারলাম যে আমি একটি ভাল সমাধান খুঁজে পেতে পারে। আমি শুধু তৈরি কমিট প্রত্যাবর্তন করতে চান। আমি git revert HEAD দিয়ে এটি করার চেষ্টা করেছি কিন্তু এটি আমাকে এই ত্রুটিটি দিয়েছে:

fatal: Commit <SHA1> is a merge but no -m option was given.

ওটার মানে কি? যখন আমি একত্রিত এবং প্রতিশ্রুতিবদ্ধ, আমি -m বিকল্পটি "ব্যবহারকারীর সাথে যুক্ত করা"> বলার জন্য ব্যবহার করেছি।

আমি এখানে কি ভুল করছি?


ডিফল্ট git revert দ্বারা আসলে একটি অর্থ একত্রিত করতে প্রত্যাখ্যান করে যা প্রকৃতপক্ষে অর্থহীন। আমি আপনার HEAD আসলে একটি মার্জ কমিট যে অনুমান।

আপনি যদি মার্জ কমিটটি ফিরিয়ে আনতে চান তবে আপনাকে ম্যারেজের কোন অভিভাবকটি প্রধান ট্রাঙ্ক হিসাবে বিবেচনা করতে চান তা উল্লেখ করতে হবে, অর্থাৎ আপনি যা প্রত্যাবর্তন করতে চান।

প্রায়শই এটি পিতা-মাতা নম্বর হতে পারে, উদাহরণস্বরূপ, যদি আপনি master এবং git merge unwanted এবং তারপর git merge unwanted করার সিদ্ধান্ত নেয়। প্রথম পিতামাতা আপনার প্রি-মার্জ master শাখা হতে হবে এবং দ্বিতীয় পিতামাতা unwanted টিপ হবে।

এই ক্ষেত্রে আপনি করতে পারেন:

git revert -m 1 HEAD





git-revert