গিট স্ট্যাশ প্রয়োগ সংস্করণ


512

আমার 2 টি শাখা আছে: মাস্টার | নকশা

ডিজাইনে কাজ করে আমি একটি স্ট্যাশ করেছিলাম এবং মাস্টারে স্যুইচ করেছি, কিছু সামঞ্জস্য করেছি। ডিজাইনে ফিরে stash applyগেছে এবং ডিজাইন শাখায় আমার সমস্ত পরিবর্তন হারাতে কেবল একটি করেছে ।

আমি আশা করছি যে আমার সমস্ত কাজ স্ট্যাশ এর মধ্যে রয়েছে কারণ আমি এগুলি সাফ করে দিয়েছি বা সরিয়ে নেই।

যদি আমি কোনও স্ট্যাশ তালিকা করি তবে আমি 4 টি ফলাফল পেয়েছি:

stash@{0}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{1}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{2}: WIP on design: eb65635... Email Adjust
stash@{3}: WIP on design: eb65635... Email Adjust

যদি আমি চেষ্টা git stash apply f2c0c72করি তবে আমি একটি ত্রুটি পাচ্ছি:

fatal: Needed a single revision
f2c0c72: no valid stashed state found

আমি কীভাবে একটি নির্দিষ্ট স্ট্যাশ প্রয়োগ করতে পারি?


26
নোট করুন যে আপনার কাছে এখন (Q4 2016, গিট 2.11) সিনট্যাক্স রয়েছে git stash apply 0(পরিবর্তে git stash apply stash@{0})। দেখুন আমার উত্তর এখানে
ভনসি

উত্তর:


836

স্ট্যাশ-এর ​​কীগুলি আসলে stash@{n}বামদিকে থাকা আইটেম। সুতরাং চেষ্টা কর:

git stash apply stash@{0}

(মনে রাখবেন যে কয়েকটি শেলগুলিতে আপনাকে "stash@{0}"জেডশ, ফিশ এবং পাওয়ারশেলের মতো উদ্ধৃতি দিতে হবে)।

সংস্করণ ২.১১, এটি বেশ সহজ, আপনি এন স্ট্যাক নম্বর ব্যবহারের পরিবর্তে ব্যবহার করতে পারেন stash@{n}। পরিবর্তে এখন ব্যবহার পরিবর্তে:

git stash apply "stash@{n}"

আপনি টাইপ করতে পারেন:

git stash apply n

স্ট্যাশগুলির তালিকা পেতে:

git stash list

প্রকৃতপক্ষে গিটটিতে stash@{0}একটি সংশোধন যা আপনি স্যুইচ করতে পারেন ... তবে git stash apply ...এটি আপনার বর্তমান অবস্থানে প্রয়োগ করার জন্য কীভাবে ডিটিআরটি করবেন তা নির্ধারণ করা উচিত।


90
কেবল একটি নোট যে কয়েকটি শেলের উপর, স্ট্যাশ @ {n} অবশ্যই উদ্ধৃত করা উচিত।
সেনজাই

7
অন্য টিপ: gitk stash@{0}একটি নির্দিষ্ট স্ট্যাশে আপনি যে পরিবর্তনগুলি করেছেন তা প্রদর্শন করতে আপনি যেমন করতে পারেন do
অ্যান্টিনোম

11
zsh ব্যবহারকারীদের git stash apply "stash@{0}"
mynameistechno

7
stash@{n}টাইপ করার জন্য সবচেয়ে বিশ্রী কমান্ড। এটির জন্য নিজের শর্টকাট বা ফাংশন তৈরি করা ছাড়া কি আর কিছু করার আছে?
ডিলান্থেপিগুয়ে

2
git stash apply nশান্তিপূর্ণ
ভিক্টর

240

স্ট্যাশ প্রয়োগ করতে এবং এটি স্ট্যাশ তালিকা থেকে অপসারণ করতে, চালান:

git stash pop stash@{n}

স্ট্যাশ প্রয়োগ করতে এবং এটি স্ট্যাশ ক্যাশে রাখতে, চালান:

git stash apply stash@{n}

8
এটি দুর্দান্ত, দুটি বিকল্পের মধ্যে পার্থক্য করার জন্য ধন্যবাদ। আমি কেবল এটি ব্যবহার করে দেখেছি এবং মনে হচ্ছে আপনি যদি শাখা-ক থেকে শাখা-বিতে কোনও স্ট্যাশ পপ করেন তবে স্ট্যাশ এখনও স্ট্যাশ ক্যাশে থাকবে। আমার ধারণা এটি হ'ল তাই আপনার কাছে ভবিষ্যতের তারিখে শাখা-এ স্ট্যাশ প্রয়োগ করার / পপ করার বিকল্প থাকবে have সত্যিকার অর্থেই তা আশাবাদী। কুশলী!
লংদা

42
পাওয়ারশেলের জন্য:git stash pop "stash@{n}"
ankitjaininfo

1
উদ্ধৃতি / একক উদ্ধৃতিতে কোঁকড়া ধনুর্বন্ধনী দ্বারা পাওয়ারশেল খুশি:git stash apply stash@"{n}"
এম 1 কেএল

পাওয়ারশেলও গ্রহণ করবে git stash apply stash@`{n`}(ধনুর্বন্ধনীগুলির আগে ব্যাকটিকগুলি নোট করুন)।
ইয়ান কেম্প

52

সংস্করণ ২.১১, এটি বেশ সহজ, আপনি এন স্ট্যাক নম্বরটি বলার পরিবর্তে ব্যবহার করতে পারেন "stash@{n}"। পরিবর্তে এখন ব্যবহার পরিবর্তে:

git stash apply "stash@{n}"

আপনি টাইপ করতে পারেন:

git stash apply n

উদাহরণস্বরূপ, আপনার তালিকায়:

stash@{0}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{1}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{2}: WIP on design: eb65635... Email Adjust
stash@{3}: WIP on design: eb65635... Email Adjust

আপনি যদি আবেদন করতে চান তবে আপনি stash@{1}টাইপ করতে পারেন:

git stash apply 1

অন্যথায়, আপনি যদি আপনার ডিরেক্টরিতে 1.7.5.1 থেকে কিছু পরিবর্তন করে থাকেন তবে এটি ব্যবহার করতে পারেন তবে আপনাকে অবশ্যই নিশ্চিত হতে হবে যে স্ট্যাশ আপনার কার্যকরী ডিরেক্টরি পরিবর্তনগুলি ওভাররাইট করবে না যদি এটির কোনও ত্রুটি পাওয়া যায়:

error: Your local changes to the following files would be overwritten by merge:
        file
Please commit your changes or stash them before you merge.

1.7.5.1 এর পূর্ববর্তী সংস্করণগুলিতে, ওয়ার্কিং ডিরেক্টরিতে কোনও পরিবর্তন থাকলে এটি কাজ করতে অস্বীকার করেছিল।


গিট রিলিজ নোট:

ব্যবহারকারীর সর্বদা "স্ট্যাশ @ {$ এন}" বলতে হয় যখন স্ট্যাশের ডিফল্ট স্থানে কোনও একক উপাদানের নামকরণ করা হয়, অর্থাৎ রেফ / স্ট্যাশে পুনরায় লগ করা হয়। "গিট স্ট্যাশ" কমান্ড "গিট স্ট্যাশ প্রয়োগ 4" কে "গিট স্ট্যাশ প্রয়োগ স্ট্যাশ @ {4}" এর স্বল্প হাত হিসাবে গ্রহণ করতে শিখেছে

গিট স্ট্যাশ অ্যাপ্লিকেশন "কাজের গাছের কোনও পরিবর্তন ঘটে থাকলে কাজ করতে অস্বীকার করত, এমনকি যখন পরিবর্তনটি রেকর্ডকৃত স্ট্যাশটির পরিবর্তনে ওভারল্যাপ না হয়


41

যদি কোনও একটি উইন্ডোজ মেশিনে এবং পাওয়ারশেলে থাকে তবে একটির পক্ষে যুক্তিটি উদ্ধৃত করা দরকার যেমন:

git stash apply "stash@{0}"

... বা পরিবর্তনগুলি প্রয়োগ করতে এবং স্ট্যাশ থেকে সরিয়ে নিতে:

git stash pop "stash@{0}"

অন্যথায় উদ্ধৃতিগুলি না থাকলে আপনি এই ত্রুটিটি পেতে পারেন:

মারাত্মক: অস্পষ্ট আর্গুমেন্ট 'স্ট্যাশ @': অজানা সংশোধন বা পথ কার্যকর গাছের মধ্যে নেই।


সম্ভবত ম্যাক ওএসএক্স 10.11 এও ফিশ শেল ব্যবহার করার সময় আপনাকে এটি করতে হবে।
lps

8
git stash list

তারপরে প্রয়োগ করতে এবং কেবল সংখ্যাটি ব্যবহার করতে স্ট্যাশ নির্বাচন করুন:

git stash apply 1

2
Git Stash list 

তালিকাতে সমস্ত স্ট্যাশড আইটেম প্রদর্শিত হবে যেমন: স্ট্যাশ @ {0} :, স্ট্যাশ @ {1}:, .., স্ট্যাশ @ {n}:

তারপরে নম্বরটি নির্বাচন করুন যা স্ট্যাশকে বোঝায় @ {n}:

git stash apply n 

for eg: git stash apply 1 will apply that particular stashed changes to the current branch
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.