গিট স্ট্যাশ পপ এবং গিট স্ট্যাশ প্রয়োগের মধ্যে পার্থক্য


1022

আমি git stash popবেশ কিছুদিন ধরে ব্যবহার করছি। আমি git stash applyকমান্ড সম্পর্কে সম্প্রতি জানতে পেরেছি । আমি যখন এটি চেষ্টা করে দেখলাম তখন মনে হয় এটি একইরকম কাজ করবে git stash pop

মধ্যে পার্থক্য কি git stash popএবং git stash apply?

উত্তর:


1626

git stash pop এটি প্রয়োগ করার পরে (শীর্ষস্থানীয়, ডিফল্টরূপে) স্ট্যাশ ফেলে দেয় , পরে এটি পুনরায় ব্যবহারের জন্য সম্ভাব্য git stash apply স্ট্যাশ তালিকায় রাখে (বা আপনি git stash dropএটি করতে পারেন )।

এর পরে যদি বিরোধ না হয় তবেই এটি ঘটে git stash pop, এক্ষেত্রে এটি স্ট্যাশ সরিয়ে ফেলবে না, একে একে ঠিক মতো আচরণ করতে রেখে git stash apply

এটি দেখার আরেকটি উপায়: git stash popতা git stash apply && git stash drop


117
নীচে @ ব্রিঙ্কিপ-এর উত্তর নোট হিসাবে, কোনও স্ট্যাশ পপ করার সময় যদি কোন্দল হয় তবে পপ স্ট্যাশ সরিয়ে ফেলবে না (এবং ঠিক প্রয়োগের মতো আচরণ করবে)
কাশিফ

দেখে মনে হচ্ছে আপনার শাখায় অযাচিত পরিবর্তনগুলি যদি git stash popফলাফলের মতো হয় তবে আপনি এখনও একটি দ্বন্দ্ব ত্রুটি পাবেন।
ডিসিপি

79

জন সহায়ক জিনউইক যেমন বলেছিলেন এবং এর একটি অপূর্ণতা রয়েছে তেমনি এই পার্থক্যটিকেও জানায় এই সহায়ক লিঙ্কটি git stash pop

উদাহরণস্বরূপ, বলুন যে আপনার স্ট্যাশড পরিবর্তনগুলি আপনি অন্যান্য পরিবর্তনগুলির সাথে বিরোধ করছেন যা আপনি প্রথম স্ট্যাশ তৈরির পরে করেছেন। পপ এবং প্রয়োগ উভয়ই মার্জাল সংঘাতের সমাধানের মোডে সহায়কভাবে ট্রিগার করবে, আপনাকে এ জাতীয় দ্বন্দ্বগুলি সুন্দরভাবে সমাধান করার অনুমতি দেয় ... এবং না কোনও স্ট্যাশ থেকে মুক্তি পাবেন, যদিও আপনি সম্ভবত পপও আশা করছেন expect যেহেতু প্রচুর লোক স্ট্যাশগুলি কেবল একটি সাধারণ স্ট্যাক হিসাবে প্রত্যাশা করে, এর ফলে এগুলি ঘটনাক্রমে পরে একই স্ট্যাশটিকে পপ করে নিয়ে যায় কারণ তারা ভেবেছিল এটি শেষ হয়ে গেছে।

লিঙ্ক: http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/


6
প্রথমদিকে যেমন মনে হতে পারে তবুও কোনও পপ ব্যর্থ হওয়ার পরে সত্যিকার অর্থে স্থির হওয়ার ঘটনাটি কোনও অসুবিধা নয়।
অমলগোভিনাস

64

git stash popশীর্ষ স্ট্যাশেড উপাদান প্রয়োগ করে এবং এটি স্ট্যাক থেকে সরিয়ে দেয়। git stash applyএকই কাজ করে তবে এটি স্ট্যাশ স্ট্যাকের মধ্যে রেখে দেয়।


42

কর্মে এটি দেখতে পার্থক্যটি আরও ভালভাবে বুঝতে আপনাকে সহায়তা করতে পারে।

ধরে নিই আমরা masterশাখায় কাজ করছি এবং একটি ফাইল hello.txtরয়েছে যাতে "হ্যালো" স্ট্রিং রয়েছে।

আসুন ফাইলটি পরিবর্তন করুন এবং এর সাথে "ওয়ার্ল্ড" স্ট্রিং যুক্ত করুন। সবেমাত্র পাওয়া একটি ছোট বাগটি সংশোধন করার জন্য আপনি একটি আলাদা শাখায় যেতে চান, সুতরাং stashআপনার পরিবর্তনগুলি করতে হবে:

git stash

আপনি অন্য শাখায় চলে এসেছেন, বাগটি ঠিক করেছেন এবং এখন আপনি আপনার masterশাখায় কাজ চালিয়ে যাওয়ার জন্য প্রস্তুত , যাতে আপনি popপরিবর্তনগুলি:

git stash pop

এখন আপনি যদি স্ট্যাশ সামগ্রীটি পর্যালোচনা করার চেষ্টা করেন তবে আপনি পাবেন:

$ git stash show -p
No stash found.

তবে আপনি যদি এর git stash applyপরিবর্তে ব্যবহার করেন তবে আপনি স্ট্যাশ করা সামগ্রী পাবেন তবে আপনি এটি সংরক্ষণও করতে পারবেন:

$ git stash show -p
diff --git a/hello.txt b/hello.txt
index e965047..802992c 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1 @@
-Hello
+Hello world

সুতরাং pop, এটি একটি প্রকৃত উপাদান একবার এটি popped হচ্ছে সরিয়ে ফেলা হবে যখন - শুধু স্ট্যাকের পপ মত হল applyআরো ভালো হয় উঁকি


5

ইন git লুকোবার জায়গা স্টোরেজ এরিয়ে যেখানে বর্তমান পরিবর্তিত ফাইল সরানো হতে পারে।

stashঅঞ্চলটি দরকারী যখন আপনি gitসংগ্রহশালা থেকে কিছু পরিবর্তন আনতে চান এবং gitরেপোতে উপলব্ধ কিছু মিউচুয়াল ফাইলগুলিতে কিছু পরিবর্তন সনাক্ত করতে পারেন ।

git stash apply //apply the changes without removing stored files from stash area.

git stash pop  // apply the changes as well as remove stored files from stash area.

দ্রষ্টব্য: - git applyপ্রয়োগের সময় কেবলমাত্র স্ট্যাশ অঞ্চল থেকে পরিবর্তনগুলি প্রয়োগ করুন git popপাশাপাশি stashঅঞ্চল থেকে পরিবর্তন সরিয়ে ফেলুন ।


1

গিট স্ট্যাশ Pop vs applyওয়ার্কিং

আপনি যদি বর্তমান শীর্ষস্থানীয় পরিবর্তনে আপনার শীর্ষ স্ট্যাশড পরিবর্তনগুলি প্রয়োগ করতে চান এবং সেই স্ট্যাশটিকেও মুছতে চান, তবে আপনার উচিত git stash pop

# apply the top stashed changes and delete it from git stash area.
git stash pop  

আপনি যদি নিজের শীর্ষ স্ট্যাশেড পরিবর্তনগুলি মুছে না ফেলে বর্তমান নন-স্টেজড পরিবর্তনে প্রয়োগ করতে চান তবে আপনার উচিত git stash apply

দ্রষ্টব্য: আপনি Stackক্লাস pop()এবং peek()পদ্ধতিগুলির সাথে এই ক্ষেত্রেটি সম্পর্কিত করতে পারেন , যেখানে পপ শীর্ষকে হ্রাস দ্বারা শীর্ষে পরিবর্তন করে (শীর্ষ = শীর্ষ -1) তবে peek()কেবল শীর্ষ উপাদানটি পেতে সক্ষম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.