গিট চেরি-পিক কাজ করছে না


110

আমি মাস্টারের কাছ থেকে একটি প্রতিশ্রুতি চেরি-বাছাই করে এটি বর্তমান উত্পাদন শাখায় নিয়ে যাওয়ার চেষ্টা করছি। যাইহোক, যখন আমি কার্যকর করি git cherry-pick <SHA-hash>, আমি কেবল এই বার্তাটি পাই:

# On branch prod_20110801
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#   site/test-result/
 nothing added to commit but untracked files present (use "git add" to track)
 The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git reset'

দ্রষ্টব্য: আমি একটি রিসেট এবং একটি পুনরায় সেট করার চেষ্টা করেছি - হ্যাড হেড ^, এবং উভয়ই কোনও কিছু বদলাবে বলে মনে হচ্ছে না।

কেন এটি আমার পক্ষে কাজ করছে না তা নিয়ে আমি বিভ্রান্ত।

কীভাবে সমাধান করা যায় সে সম্পর্কে কোনও অন্তর্দৃষ্টি, পরামর্শ বা ধারণাগুলি সহায়ক হবে ~!


আমার সাথে ঘটেছিল যখন আমি ভুলক্রমে ভুল প্রতিশ্রুতিবদ্ধভাবে চেরি-বাছাই করার চেষ্টা করি। গিটক ব্যবহার করার সময় কখনও কখনও ঘটে যায়।
cst1992

উত্তর:


141

গিটি চেরি-পিকটিকে কোনও অপ-বিকল্প হিসাবে সমাধান করছে - সেই প্রতিশ্রুতি দ্বারা প্রবর্তিত সমস্ত পরিবর্তনগুলি আপনার বর্তমান শাখায় কিছু প্রতিশ্রুতিবদ্ধ দ্বারা প্রবর্তিত হয়েছিল। (বা যাইহোক, গীত এটিই মনে করেন)) যাচাই করুন যে আপনি যে প্রতিশ্রুতি চেরি-বাছাই করছেন তা ইতিমধ্যে কোনওভাবেই একত্রীকরণ হয়নি, যথাযথ মার্জ, রিবেস / চেরি-পিক বা টুকরা প্যাচ হিসাবে। ( git show <commit-id>পার্থক্য দেখতে ব্যবহার করুন ।)


16
আপনার পরামর্শের জন্য ধন্যবাদ, এটি চেরি-পিক ইতিমধ্যে ঘটেছে সক্রিয় এবং আমি গিথুব এ ধাক্কা করা দরকার ছিল আমাকে।
জে টেলর

ঠিক আছে, আমি বুঝতে পারি নি যে এটি কমিট-আইডি দেওয়া ফাইলগুলির বিষয়বস্তুটি পরীক্ষা করছে। আমি লগটিতে কমিট-আইডি খুঁজছিলাম এবং এটি খুঁজে পেলাম না। দেখা গেল এটি ইতিমধ্যে একীভূত হয়েছে
এমপারাজ

দুর্ভাগ্যক্রমে, এটি কেবল ইস্যু করার কারণ নয়। আমার যখন প্রতিশ্রুতিবদ্ধ হয়েছিল তখন আমার ঠিক একই অবস্থা হয়েছিল, যা পূর্বের কিছু প্রতিশ্রুতি উল্টে দেয় এবং যখন আমি চেরি-বাছাই করে অন্য কোন শাখায় নিয়ে যাই, যে ইতিহাসটি পরিবর্তনগুলি পুনরায় উল্টানো হয়নি (যেমন সেই বিপরীত প্রতিশ্রুতিটির চেরি-পিক ছিল না) )। অবশ্যই, এটি আমার দোষ। তবে এক্ষেত্রে আশা করা যায় যে খুব গতিসম্পন্ন হওয়ার চেষ্টা না করে গিটটি দ্বন্দ্বের স্থিতিতে ব্যর্থ হবে, যার ফলস্বরূপ বিভ্রান্ত ব্যবহারকারী in
আর্টেম পিসারেঙ্কো

আপনি যদি মার্জ কমিট এবং চেরি-বাছাই করা প্রতিশ্রুতি ফেরত শাখায় থাকে তবে এটি ঘটতে পারে।
ম্যাট

11

আমার ক্ষেত্রে এটা আমার মাথা খারাপ ছিল, যেমন বেশ সুস্পষ্ট নির্দিষ্ট কমিট যে আমি চেরি পিক করতে চেয়েছিলেন ছিল না হয়েছে আমার বর্তমান শাখা মধ্যে মিশে গিয়ে তৈরি।

দেখা যাচ্ছে যে কেউ ইতিমধ্যে চেরি এক সপ্তাহ আগে প্রতিশ্রুতিটি বেছে নিয়েছিল। পরিবর্তনগুলি , কিন্তু না নির্দিষ্ট রয়েছে SHA, আমার বর্তমান শাখা ইতিমধ্যে ছিল, এবং আমি তাদের খেয়াল করিনি।

আপনি চেরি বাছাই করার চেষ্টা করছেন এমন ফাইল (গুলি) পরীক্ষা করুন। যদি তাদের ইতিমধ্যে পরিবর্তনগুলি থাকে তবে কমিটের একটি সংস্করণ ইতিমধ্যে চেরি বেছে নিয়েছে বা অন্যভাবে যুক্ত করা হয়েছে। চেরি আবার এটি বাছাই করার প্রয়োজন নেই।


আমি পুরোপুরি নিশ্চিত যে নির্দিষ্ট প্রতিশ্রুতিটি কখনই আপনার শাখায় থাকে না যখন এটি চেরি বাছাইয়ের মাধ্যমে আনা হয়েছিল, কারণ চেরি পিকটি একটি নতুন হ্যাশ হবে, তাই না? নাকি আমি ভুল বুঝাবুঝি করছি?
মিশ্র

@msouth আমি মূলত অন্যান্য উত্তর থেকে সরিয়ে দিল "ইতিমধ্যেই মিশে গেছে কমিট" ছিল, কিন্তু আমি দেখতে পারে যে এটি ছিল না আমার শাখায়। আপনি চেরি পিক সম্পর্কে ঠিক বলেছেন তবে সর্বদা নতুন এসএএএচ হওয়া উচিত।
পেকম্ব

হ্যাঁ, আমি টাইপ করার সময় "হ্যাশ দ্বারা চিহ্নিত" নির্দিষ্ট প্রতিশ্রুতি "ভাবছিলাম। আমার ভাষা ছিল অপ্রচলিত। git log --graph --pretty --decorate --onelineপ্রদত্ত এসএইচএ আমার শাখায় আছে কি না তা দেখার জন্য আমি প্রায়শই আউটপুটটি দেখছি। আপনি কীভাবে প্রতিশ্রুতিবদ্ধ বার্তাটি পরিবর্তনের সূচক হিসাবে ভাবছেন তার উপর ভিত্তি করে কীভাবে মিশ্রিত হতে পারেন সে সম্পর্কে নীচের আমার উত্তরটি দেখুন - এমন একটি পরিস্থিতি রয়েছে যেখানে তা নেই এবং এটিই আমাকে মূলত এই প্রশ্নের দিকে পরিচালিত করেছিল। কারও মস্তিষ্কের এই শর্টকাটগুলি তৈরি করার প্রবণতা রয়েছে এবং তারা মাঝে মাঝে আপনাকে কামড় দিতে ফিরে আসতে পারে।
মাউথ

6

এছাড়াও নোট করুন যে গাছটিতে একটি খালি ফাইল (উদাহরণস্বরূপ .gitkeep) যুক্ত করা চেরি-চয়নকে খালি কমিট হিসাবে বিবেচনা করা হয়।


আমার ক্ষেত্রে আমার চেরি-পিক করার চেষ্টা করার আগে আমার একটি রিভার্ট কমিট (এটি একটি খালি কমিট নিজেই ফিরিয়ে আনছিল) ছিল, তাই আমি অনুমান করি যে কোনও কিছু খালি-ইশ সম্ভবত সম্ভবত এই বার্তাটি প্রকাশ করবে।
lidkxx

3

সুতরাং, এখানে আরও একটি বিভ্রান্তিকর পরিস্থিতি রয়েছে যেখানে এটি দেখা দিতে পারে: আমার নিম্নলিখিতগুলি ছিল:

গিট লগ স্ক্রিনশট

আমি চেরিটি 9a7b12e বাছাই করার চেষ্টা করছিলাম যা আপাতদৃষ্টিতে কিছুই নয় - এটি এমনকি গিট লগ আউটপুটে আমাকে সেই লাইনে বলার চেষ্টা করেছিল যে 4497428 আমি যা চেয়েছিলাম তা সত্যই ছিল। (আমি যা করেছি তা কেবল প্রতিশ্রুতি বার্তার সন্ধান করা হয়েছিল এবং আমি যে হ্যাশটি দেখেছি তা প্রথম পেয়েছিলাম) যাইহোক, কেবল লোককে জানাতে চাইছেন যে চেরির কোনও অপশন বাছাইয়ের চেষ্টা করার জন্য আপনি আরও একটি উপায় থেকে চালিত হয়ে উঠতে পারেন।


10
আপনার ব্যাখ্যা ছাড়াই নিম্নমানের পক্ষে খুব সহায়ক নয় - এটি আমার যে সমস্যার মুখোমুখি হয়েছিল আমার সঠিক অনুসন্ধান এবং এটি আমার অনুসন্ধানে এই প্রশ্নটি সন্ধান করতে পরিচালিত করে। আপনার যদি এটির উন্নতি করার জন্য কোনও প্রস্তাবনা থাকে তবে দয়া করে কেবল ডাউনভোটিংয়ের পরিবর্তে মন্তব্যগুলিতে আমাকে জানান।
মিশর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.