গিট শেলভ বনাম স্ট্যাশ


275

shelveগিতের দিকটি সম্পর্কে আমি খুব অপরিচিত । যদি stashঅসম্পূর্ণ কাজকে একপাশে রেখে ব্যবহার করা হয় shelveতবে কী? আপনি এটি কি জন্য ব্যবহার করবেন?

আপডেট প্রকল্পে উদাহরণস্বরূপ (ভিসিএস মেনু থেকে)

এখানে চিত্র বর্ণনা লিখুন

একটি পাবেন (আইডিয়া 2019.2 এ)

এখানে চিত্র বর্ণনা লিখুন


14
shelveগিট কমান্ড নয়। এই প্রশ্নের প্রসঙ্গ কী, এই পদগুলি কোথা থেকে আসছে? shelveঅন্য কয়েকটি সরঞ্জামে বিদ্যমান তবে এটি গিটের অংশ নয়।
জোনা

2
গিট স্ট্যাশ shelveবিজিআর, এইচজি ইত্যাদির অনুরূপ , আপনি কি কিছু গিট আন্তঃঅভাজনীয় প্যাকেজটির কথা উল্লেখ করছেন?
drRobertz

3
গৃহীত উত্তরের চেয়ে আরও বেশি অগ্রগতি সম্ভবত নিশ্চিত করে, এই প্রশ্নটি বৈধ এবং '' শেলভ 'শব্দটি গিট কমান্ড হিসাবে সমানভাবে ভুল বোঝা যায়। জিজ্ঞাসা করার জন্য ধন্যবাদ, এটি আমার সন্দেহও ছিল (আইডিইএ থেকেও)।
প্রবীণন্দস

উত্তর:


266

git shelve গিটের অস্তিত্ব নেই

কেবলমাত্র git stash:

  • আপনি যখন ওয়ার্কিং ডিরেক্টরি এবং সূচকের বর্তমান অবস্থা রেকর্ড করতে চান তবে আপনি একটি পরিষ্কার ওয়ার্কিং ডিরেক্টরিতে ফিরে যেতে চান।
  • যা আপনার স্থানীয় পরিবর্তনগুলি দূরে সরিয়ে দেয় এবং হেড প্রতিশ্রুতি মেলানোর জন্য ওয়ার্কিং ডিরেক্টরিটিকে উল্টে দেয়।

আপনার একটি শাখায় পরিবর্তনগুলি বিচ্ছিন্ন করার জন্য আপনার ২০০৮ সালের প্রজেক্টের গিট তাক ছিল তবে আজকাল এটি খুব কার্যকর হবে না।

যেমনটি ইন্টেলিজ আইডিইএ তাক সংলাপে নথিবদ্ধ হয়েছে , " শেল্ভিং এবং আনশেলিং " বৈশিষ্ট্যটি কোনও ভিসিএস (সংস্করণ নিয়ন্ত্রণ সিস্টেম সরঞ্জাম) এর সাথে যুক্ত নয়, তবে আইডিইর সাথে সাময়িকভাবে পেন্ডিং পরিবর্তনগুলি সংরক্ষণ করার জন্য যা আপনি এখনও পরিবর্তন তালিকায় প্রতিশ্রুতিবদ্ধ হন নি।

নোট করুন যে গিট 2.13 (Q2 2017) থেকে আপনি এখন পৃথক ফাইলগুলিও স্ট্যাশ করতে পারেন


73
পরিণত হয় আমি ধারণাটি ভুল বুঝেছি। আমি ভেবেছিলাম এটি গিট কমান্ড ছিল যখন বাস্তবে এটি ইন্টেলিজ আইডিইএর তৃতীয় পক্ষের জিনিস। আমি এর জন্য গিট ডক্সটি খুঁজে পাইনি তাই ভেবেছিলাম যে আমি কিছু অনুপস্থিত। jetbrains.com/idea/help/shelving- এবং- unshelving
এডগার মার্টিনেজ

2
আপনার ডক লিঙ্কটি ইঙ্গিত করে যে "তাক" কেবলমাত্র ইন্টেলিজ আইডিই দ্বারা পরিচালিত পরিবর্তনের (প্যাচ) সেট করা হয়, "স্ট্যাশগুলি" আনইলিংক করুন যা গিট দ্বারা পরিচালিত স্ট্যান্ডার্ড জিনিস। সুতরাং তাক এড়ানো।
barbara.post

2
@ জেরি চিবুক তাক আপনার ক্ষেত্রে স্ট্যাশ করার চেয়ে ভাল। আমার ইচ্ছা যদি তাক গিটে উপস্থিত থাকত। ওয়েবস্টর্ম র‌্যাম বের করে দেয়। এটি উপকারী হবে যদি
গিটটি থাকলে

2
এমন একটি সাধারণ ব্যবহারের ক্ষেত্রে রয়েছে যে তাকটি স্ট্যাশকে সম্বোধন করে না - সমস্যাযুক্ত সহকর্মী / সংস্থার অনুশীলনগুলির সাথে ডিল করে। আপনার সংগ্রহস্থলটিতে সম্পূর্ণ আবর্জনা যুক্ত হওয়া এবং কারও পাগল হওয়ার কারণে এটি 'ফিক্স' করতে কোশার না হওয়ার পক্ষে এটি সম্ভব। বিকল্প মত কিছু git stash && <your actual command> && git stash popকিন্তু যে sucks। অটো-শেল্ভ এবং প্রয়োগ আমাদের যা প্রয়োজন তা আরও কাছে।
স্মুডেট

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

187

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


10
মনে হচ্ছে যে সরাইয়া রাখা চেয়ে বেশি নমনীয় Git লুকোবার জায়গা
দিমিত্রি ডেভিডভ

12
পুনঃটুইট git stash -pকরেছেন দুর্ভাগ্যক্রমে শুধুমাত্র কমান্ড লাইনে।
ভী

1
@ দেখুন হ্যাঁ এটি কার্যকারিতার দিক থেকে তাকের সাথে খুব মিল, তথ্যের জন্য ধন্যবাদ।
দিমিত্রি ডেভিডভ

10
আসলে, গিট 2.13 (কিউ 2 2017) থেকে আপনি স্বতন্ত্র ফাইলগুলি স্ট্যাশ করতে পারেন ... আরও পড়ুন
kyb

5
আমি যখন তাকান এমন একটি প্যাচ পেয়েছি যা আপনি প্রতিবার প্রয়োগ করতে চান যা আপনি উদাহরণস্বরূপ ডকুমেন্টেশন স্বয়ংক্রিয়ভাবে তৈরি করতে চান তখন আমি তাকটি খুব দরকারী পেয়েছি । শেল্ভ .idea / তাক এর মধ্যে একটি ফাইল তৈরি করবে এবং আপনি এটিকে আপনার ভিসিএসে যুক্ত করতে এবং এটি আপনার সমস্ত টিমের সাথে ভাগ করতে পারেন যাতে তারা সেই পরিবর্তনগুলি প্রয়োগ করতে এবং একই কাজগুলি চালাতে পারে।
ইঙ্গকেভিন

63

পূর্ববর্তী উত্তরগুলি ছাড়াও আমার জন্য একটি গুরুত্বপূর্ণ নোট রয়েছে:

shelveJetBrains পণ্য বৈশিষ্ট্য (যেমন হয় WebStorm, PhpStorm, PyCharm, ইত্যাদি)। এটি তাকযুক্ত ফাইলগুলি .idea/shelfডিরেক্টরিতে রাখে ।

stashএক gitঅপশন। এটি স্ট্যাশড ফাইলগুলিকে .gitডিরেক্টরিতে রাখে ।


2
এই সমালোচনা প্রশ্নটি স্পষ্ট করার জন্য ধন্যবাদ।
আমেরেলিকাএ

4

আমি যদি অন্য কোথাও আমার পরিবর্তনগুলি ভাগ না করে থাকি তবে পরিবর্তনগুলি স্ট্যাশ করার পরিবর্তে তাক লাগাতে পছন্দ করব।

স্ট্যাশিং একটি গিট বৈশিষ্ট্য এবং আপনাকে কোনও ফাইলের মধ্যে নির্দিষ্ট ফাইল বা পরিবর্তনগুলি নির্বাচন করার বিকল্প দেয় না। শেলভিং এটি করতে পারে তবে এটি একটি আইডিই-নির্দিষ্ট বৈশিষ্ট্য, গিট বৈশিষ্ট্য নয়:

এখানে চিত্র বর্ণনা লিখুন

আপনি দেখতে পাচ্ছেন যে আমার তাকটিতে কোন ফাইল / লাইন অন্তর্ভুক্ত করা উচিত তা নির্দিষ্ট করতে আমি বেছে নিতে সক্ষম। দ্রষ্টব্য যে আমি স্ট্যাশিং দিয়ে এটি করতে পারি না।

আইডিইতে তাক ব্যবহার করে সাবধান থাকুন আপনার প্যাচগুলির বহনযোগ্যতা সীমাবদ্ধ করতে পারে কারণ এই পরিবর্তনগুলি .git ফোল্ডারে সংরক্ষণ করা হয়নি।

কিছু সহায়ক লিঙ্ক:

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