যেহেতু গিটটি মূলত সমস্ত সংগ্রহস্থল সামগ্রী এবং সূচি পরিচালনা করতে হয় (এবং এক বা একাধিক ফাইল নয়), তাই git stash
অবাক হওয়ার মতো নয়,সমস্ত কার্যনির্বাহী ডিরেক্টরি সহ।
প্রকৃতপক্ষে, গিট 2.13 (Q2 2017) থেকে আপনি পৃথক ফাইলগুলি স্ট্যাশ করতে পারেন git stash push
:
git stash push [--] [<pathspec>...]
যখন pathspec
' git stash push
' দেওয়া হয় , নতুন স্ট্যাশগুলি কেবলমাত্র প্যাথস্পেকের সাথে মেলে এমন ফাইলগুলির জন্য পরিবর্তিত রাজ্যগুলি রেকর্ড করে যে আরও জন্য " নির্দিষ্ট ফাইলগুলিতে স্ট্যাশ পরিবর্তনগুলি " দেখুন।
সরলীকৃত উদাহরণ:
git stash push path/to/file
এই বৈশিষ্ট্যটির জন্য পরীক্ষার কেস আরও কয়েকটি বিকল্প বন্ধ দেখায়:
test_expect_success 'stash with multiple pathspec arguments' '
>foo &&
>bar &&
>extra &&
git add foo bar extra &&
git stash push -- foo bar &&
test_path_is_missing bar &&
test_path_is_missing foo &&
test_path_is_file extra &&
git stash pop &&
test_path_is_file foo &&
test_path_is_file bar &&
test_path_is_file extra
আসল উত্তরটি (নীচে, জুন ২০১০) আপনি স্ট্যাশ করতে চান তা ম্যানুয়ালি নির্বাচন করার বিষয়ে।
কেসব্যাশ মন্তব্য:
এটি ( stash --patch
আসল সমাধান) দুর্দান্ত, তবে প্রায়শই আমি প্রচুর ফাইল সংশোধন করেছি তাই প্যাচ ব্যবহার করা বিরক্তিকর
bukzor এর উত্তর (upvoted, নভেম্বর 2011) আরো একটি বাস্তবসম্মত সমাধান প্রস্তাব দেওয়া উপর ভিত্তি করে
git add
+ +git stash --keep-index
।
গিয়ে দেখুন এবং তার উত্তরটিকে অগ্রাহ্য করুন, যা অফিসিয়াল হওয়া উচিত (আমার পরিবর্তে))
এই বিকল্প সম্পর্কে, chhh মন্তব্যগুলিতে একটি বিকল্প কর্মপ্রবাহ দেখায় :
git reset --soft
আপনার স্পষ্ট মঞ্চটি ফিরে পেতে আপনার " " এমন স্ট্যাশ এর পরে উচিত :
মূল অবস্থাটি - যা একটি স্পষ্ট মঞ্চ অঞ্চল এবং শুধুমাত্র কিছু নির্বাচিত বিনা পর্যায়ক্রমিক পরিবর্তন সহ, সূচকটি বিন্দুতে পুনরায় সেট করতে পারে (ছাড়াই) আপনার মতো কিছু করা - bukzor - did)।
(আসল উত্তর জুন ২০১০: ম্যানুয়াল স্ট্যাশ)
তবুও, git stash save --patch
আপনি পরে আংশিক স্ট্যাশিং অর্জন করতে পারবেন:
এর সাহায্যে --patch
আপনি ইন্টারেক্টিভভাবে হ্যাড এবং কার্যনির্বাহী গাছের মধ্যে পৃথক পৃথক থেকে কুকুরগুলি বেছে নিতে পারেন as
স্ট্যাশ এন্ট্রি এমনভাবে তৈরি করা হয় যে এর সূচক রাজ্যটি আপনার সংগ্রহস্থলের সূচকের রাজ্যের সমান এবং এর ওয়ার্ক্ট্রিতে আপনি কেবল ইন্টারেক্টিভভাবে নির্বাচিত পরিবর্তনগুলি অন্তর্ভুক্ত করেন। তারপরে নির্বাচিত পরিবর্তনগুলি আপনার ওয়ার্কট্রি থেকে ফিরে ঘুরানো হবে।
তবে এটি সম্পূর্ণ সূচক (যা আপনি যা চান তা ইতোমধ্যে ইন্ডেক্সযুক্ত অন্যান্য ফাইল অন্তর্ভুক্ত থাকতে পারে) এবং একটি আংশিক ওয়ার্কট্রি (যা আপনি স্ট্যাশ করতে চান তার মতো দেখতে পারে) সংরক্ষণ করবে।
git stash --patch --no-keep-index
একটি ভাল ফিট হতে পারে।
যদি --patch
কাজ না করে তবে ম্যানুয়াল প্রক্রিয়াটি হতে পারে:
এক বা একাধিক ফাইলের জন্য একটি মধ্যবর্তী সমাধানটি হ'ল:
- এগুলিকে গিট রেপোর বাইরে অনুলিপি করুন
(আসলে, অ্যালোটেলাক্রাম একটি আকর্ষণীয় বিকল্প প্রস্তাব করেছে )
git stash
- তাদের আবার অনুলিপি করুন
git stash
# এবার, আপনি যে ফাইলগুলি চান তা স্ট্যাশ করা হয়
git stash pop stash@{1}
# আপনার সমস্ত ফাইল পরিবর্তন পুনরায় প্রয়োগ করুন
git checkout -- afile
# স্থানীয় কোনও পরিবর্তনের আগে ফাইলটি হেড কন্টেন্টে পুনরায় সেট করুন
বরং এই জটিল প্রক্রিয়া শেষে, আপনার কাছে কেবল এক বা একাধিক ফাইল স্ট্যাশ করা থাকবে।
git stash --keep-index
সূচকে রাখে, তবে এটি সমস্ত কিছুকেই সংযুক্ত করে - উভয় সূচক এবং বাইরেও।