কম্পিউটার

গিট স্ট্যাশ

স্ট্যাশিং আপনাকে আপনার কোড পরবর্তীতে একটি গিট রিপোজিটরিতে সংরক্ষণ করতে দেয়।

আপনি যখন একটি গিট সংগ্রহস্থলের সাথে কাজ করছেন, তখন আপনি একটি ফাইলে পরিবর্তন করতে পারেন যা আপনি পরে একটি গিট কমিটের জন্য আবেদন করতে চান৷

সেখানেই গিট স্ট্যাশ কমান্ডটি কাজে আসে। স্ট্যাশিং আপনাকে পরবর্তী তারিখের জন্য আপনার কার্যকারী শাখায় কোড সংরক্ষণ করতে দেয়। এই টিউটোরিয়ালে, আমরা উদাহরণ সহ আলোচনা করব, Git-এ stashing এর মূল বিষয় এবং কিভাবে git stash কমান্ড ব্যবহার করতে হয়।

গিট স্ট্যাশ কি?

স্ট্যাশিং আপনাকে আপনার কার্যকারী ডিরেক্টরিতে কোড সংরক্ষণ করতে দেয় এবং পরবর্তী জন্য সূচী দেয়। কখনও কখনও, যখন আপনি কোড লিখছেন, আপনি আপনার করা পরিবর্তনগুলি সংরক্ষণ করতে চাইবেন, কিন্তু সেগুলিকে সংগ্রহস্থলে কমিট করবেন না৷

একটি দৃশ্য যেখানে এটি ঘটতে পারে তা হল সমস্যার সমাধান করা। ধরুন একটি বাগ রিপোর্ট আসে৷ আপনি ইতিমধ্যেই একটি বৈশিষ্ট্য বাস্তবায়নের জন্য কাজ করছেন৷ আপনি বৈশিষ্ট্যটির দিকে প্রথমে আপনার করা পরিবর্তনগুলি সংরক্ষণ করতে এবং তারপর বাগটি ঠিক করতে চাইতে পারেন৷

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

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

স্ট্যাশিং আপনাকে পরবর্তীতে ফাইলে করা পরিবর্তনগুলি সংরক্ষণ করতে বা "স্ট্যাশ" করতে দেয়। একবার একটি ফাইল stashed করা হয়েছে, আপনি অন্য কিছু কাজ করতে পারেন. তারপর, আপনি পরে ফিরে আসতে পারেন এবং আপনার কোডে যে পরিবর্তনগুলি লুকিয়ে রেখেছেন তা প্রয়োগ করতে পারেন৷

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় কাটিয়েছে।

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

কিভাবে Git-এ পরিবর্তনগুলি লুকিয়ে রাখা যায়

গিট স্ট্যাশ কমান্ডটি পরবর্তীতে কোড স্ট্যাশ করতে ব্যবহৃত হয়। আপনি যখন গিট স্ট্যাশ চালান, আপনার বর্তমান কার্যকারী ডিরেক্টরিতে আপনি যে পরিবর্তনগুলিকে ঠেলে দেননি সেগুলি পরে সংরক্ষণ করা হবে। এতে পর্যায়ভুক্ত পরিবর্তন (গিট অ্যাড ব্যবহার করে স্টেজিং এলাকায় যোগ করা পরিবর্তন) এবং স্টেজড পরিবর্তন উভয়ই অন্তর্ভুক্ত রয়েছে।

এখানে গিট স্ট্যাশ কমান্ডের সিনট্যাক্স রয়েছে:

গিট স্ট্যাশ

ধরা যাক আমরা একটি ওয়েবসাইটে কাজ করছি এবং আমাদের কোড একটি গিট রিপোজিটরিতে সংরক্ষিত আছে৷

আমরা আমাদের কোডে index.html এবং index.js ফাইলগুলিতে পরিবর্তন করেছি। আমাদের index.html ফাইলে একটি ডিজাইন বাগ ঠিক করার সময় আমরা এই ফাইলগুলিকে পরবর্তীতে লুকিয়ে রাখতে চাই৷

আমাদের পরিবর্তন দেখতে, আমরা git status কমান্ড ব্যবহার করতে পারি। এটি আমাদের উদাহরণে ফিরে আসে:

শাখার মাস্টারের উপর আপনার শাখাটি 'অরিজিন/মাস্টার'-এর সাথে আপ টু ডেট। প্রতিশ্রুতিবদ্ধ পরিবর্তনগুলি:নতুন ফাইল:index.jsপরিবর্তনগুলি প্রতিশ্রুতির জন্য মঞ্চস্থ করা হয়নি:modified:index.html

এটি আমাদের দেখায় যে আমরা একটি নতুন ফাইল তৈরি করেছি (index.js), এবং আমরা একটি বিদ্যমান একটি (index.html) সংশোধন করেছি। আমরা আমাদের কোডবেসের অন্য অংশে কাজ করার সময় এই পরিবর্তনগুলিকে পরবর্তীতে সংরক্ষণ করতে চাই। এটি করার জন্য, আমরা git stash কমান্ড ব্যবহার করতে যাচ্ছি:

গিট স্ট্যাশ

আমাদের কোড ফিরে আসে:

 master:3b16026 feat:নতুন হোমপেজ চালু করুন

git stash কমান্ড আমাদের সংগ্রহস্থলে করা পরিবর্তনগুলি পরবর্তী সময়ের জন্য সংরক্ষণ করেছে। এখন, যদি আমরা আবার গিট স্ট্যাটাস কমান্ডটি চালাই, আমরা দেখতে পাব যে এখানে কমিট করার কিছু নেই:

শাখা মাস্টারের উপর আপনার শাখাটি 'অরিজিন/মাস্টার'-এর সাথে আপ টু ডেট। প্রতিশ্রুতি দেওয়ার কিছু নেই, গাছ পরিষ্কার করা হচ্ছে

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

যখন আপনার কোড লুকিয়ে রাখা হয়, তখন আপনার করা পরিবর্তনগুলি ছাড়াই আপনার সংগ্রহস্থলটি তার পূর্ববর্তী প্রতিশ্রুতিতে ফিরিয়ে দেওয়া হয়। আপনার কোডে আপনি যে পরিবর্তনগুলি করেছেন তা পরবর্তীতে সংরক্ষণ করা হয়েছে৷ আপনি stash পপ কমান্ড ব্যবহার করে প্রস্তুত হলে এগুলি আপনার কোডবেসে প্রয়োগ করা যেতে পারে।

আনট্র্যাক করা পরিবর্তনগুলি আটকানো

git stash কমান্ড শুধুমাত্র ফাইলগুলিতে স্টেজ করা এবং আনস্ট্যাজ করা পরিবর্তনগুলি ইতিমধ্যে গিট রিপোজিটরিতে ট্র্যাক করা হয়েছে . ডিফল্টরূপে, স্ট্যাশ কমান্ড আনট্র্যাক করা পরিবর্তনগুলিকে অন্তর্ভুক্ত করে না।

স্টেজ করা পরিবর্তনগুলি হল স্টেজিং এরিয়াতে যোগ করা পরিবর্তনগুলি। স্টেশড না করা পরিবর্তনগুলি হল গিট দ্বারা ট্র্যাক করা ফাইলগুলিতে করা। আপনি যদি একটি নতুন ফাইল পরিবর্তন করেন যা গিট দ্বারা ট্র্যাক করা হয় না, তবে এটি একটি গিট স্ট্যাশে যোগ করা হবে না। যে ফাইলগুলি উপেক্ষা করা হয়েছে সেগুলিকে স্ট্যাশে যোগ করা হবে না৷

git stash কমান্ড ব্যবহার করার সময় এগুলি ডিফল্ট পছন্দগুলি প্রয়োগ করা হয়। আপনি যদি আপনার আনট্র্যাক করা ফাইলগুলিকে লুকিয়ে রাখতে চান — যেমন একটি নতুন ফাইল যা স্টেজ করা হয়নি — আপনি -u পতাকা ব্যবহার করতে পারেন। এখানে -u পতাকার সিনট্যাক্স:

git stash -u

বিকল্পভাবে, আপনি যদি আপনার স্ট্যাশে উপেক্ষা করা ফাইলগুলি অন্তর্ভুক্ত করতে চান তবে আপনি -a পতাকা ব্যবহার করতে পারেন। এখানে -a পতাকার সিনট্যাক্স:

git stash -a

-a পতাকা ব্যবহার করে আপনার উপেক্ষা করা ফাইলগুলিতে পরিবর্তনগুলি লুকিয়ে রাখতে গিট স্ট্যাশকে বলবে। এগুলি হল আপনার কোড রিপোজিটরির .gitignore ফাইলের মধ্যে সংজ্ঞায়িত ফাইল (যদি আপনার কাছে থাকে)।

গিট স্ট্যাশ পপ ব্যবহার করে স্ট্যাশড পরিবর্তনগুলি প্রয়োগ করুন

git stash pop কমান্ডটি একটি সংগ্রহস্থলে stashed পরিবর্তনগুলি প্রয়োগ করতে ব্যবহৃত হয়। ধরুন, আমরা সিদ্ধান্ত নিয়েছি যে আমরা আগের উদাহরণে করা লুকিয়ে রাখা পরিবর্তনগুলি প্রয়োগ করতে চাই। আমরা এই কমান্ডটি ব্যবহার করে তা করতে পারি:

গিট স্ট্যাশ পপ

গিট স্ট্যাশ পপ কমান্ড রিটার্ন করে:

শাখার মাস্টারে আপনার শাখাটি 'অরিজিন/মাস্টার'-এর সাথে আপ টু ডেট। প্রতিশ্রুতিবদ্ধ পরিবর্তনগুলি:নতুন ফাইল:index.jsপরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ করার জন্য নয়:পরিবর্তিত:index.htmlড্রপড refs/stash@{0} (48afd55381cf43f2332f771349c 

গিট স্ট্যাশ পপ কমান্ড চালানোর পরে, আমাদের স্ট্যাশ থেকে পরিবর্তনগুলি আমাদের সংগ্রহস্থলের স্থানীয় কার্যকারী অনুলিপিতে প্রয়োগ করা হয়। পপ কমান্ড ট্যাশের কোডটি আপনার সংগ্রহস্থলে প্রয়োগ করে। তারপর, স্ট্যাশ খালি করা হয়।

গিট স্ট্যাশ পপ কমান্ডটি আপনার কোডে করা পরিবর্তনগুলির একটি তালিকাও প্রদান করে, যা দেখায় যে আপনার স্ট্যাশে কী ছিল৷

আপনি আপনার কোডে করা পরিবর্তনগুলি প্রয়োগ করতে git stash apply কমান্ড ব্যবহার করতে পারেন। আপনি এই পরিবর্তনগুলি আপনার স্ট্যাশে রাখতে পারেন। আমরা নিম্নলিখিত কমান্ড ব্যবহার করে আমাদের স্ট্যাশে পরিবর্তন রাখতে পারি:

গিট স্ট্যাশ প্রয়োগ করুন

কমান্ডটি ফিরে আসে:

শাখার মাস্টারের উপর আপনার শাখাটি 'অরিজিন/মাস্টার'-এর সাথে আপ টু ডেট। প্রতিশ্রুতিবদ্ধ পরিবর্তনগুলি:নতুন ফাইল:index.jsপরিবর্তনগুলি প্রতিশ্রুতির জন্য মঞ্চস্থ করা হয়নি:modified:index.html

একাধিক শাখা জুড়ে পরিবর্তন প্রয়োগ করা

আপনার কোডবেস জুড়ে অনেক শাখায় একই stashed পরিবর্তনগুলি প্রয়োগ করা stash কমান্ডের জন্য একটি ভাল ব্যবহারের ক্ষেত্রে। উদাহরণস্বরূপ, আপনি একটি শাখায় একটি স্ট্যাশ প্রয়োগ করার সিদ্ধান্ত নিতে পারেন। তারপর, আপনি অন্য শাখায় চলে যাবেন এবং সংরক্ষিত পরিবর্তনগুলি প্রয়োগ করতে একই স্ট্যাশ ব্যবহার করবেন।

একাধিক স্ট্যাশ

আপনি Git এ একাধিক স্ট্যাশ তৈরি করতে পারেন। এর অর্থ হল একটি ফাইলে পরিবর্তন করতে পারে এবং পরে সেগুলিকে লুকিয়ে রাখতে পারে। আপনি অন্য ফাইলে পরিবর্তন করতে পারেন এবং একটি পৃথক স্ট্যাশে সংরক্ষণ করতে পারেন।

স্ট্যাশ ট্র্যাক করা

একটি সংগ্রহস্থলে স্ট্যাশের একটি তালিকা ফেরত দিতে, আপনি নিম্নলিখিত কমান্ডটি চালাতে পারেন:

গিট স্ট্যাশ তালিকা

ধরুন আমরা আমাদের তৈরি করা সমস্ত স্টেশের একটি তালিকা পুনরুদ্ধার করতে চাই। আমরা উপরের কমান্ডটি কার্যকর করে তা করতে পারি। এই কমান্ডটি ফিরে আসে:

stash@{0}:WIP on master:3b16026 feat:লঞ্চ করুন নতুন homepagestash@{1}:WIP on master:3b16026 feat:নতুন হোমপেজ লঞ্চ করুন

git stash list কমান্ড আমাদের স্ট্যাশের একটি তালিকা ফিরিয়ে দিয়েছে।

যাইহোক, এই stashes শুধুমাত্র stash এর সাথে যুক্ত ডিফল্ট কমিট বার্তা ব্যবহার করে। এর মানে হল যে কোন স্ট্যাশে কোন পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে তা ট্র্যাক করা আমাদের পক্ষে কঠিন। এর কারণ হল আমরা আমাদের কোনো স্ট্যাশে একটি বিবরণ নির্দিষ্ট করিনি৷

ধরা যাক আমরা একটি নতুন স্ট্যাশে একটি বিবরণ যোগ করতে চাই। আমরা এই কমান্ডটি ব্যবহার করে তা করতে পারি:

গিট স্ট্যাশ সংরক্ষণ করুন "ওয়েবসাইটে নতুন পরিবর্তন যোগ করুন"

কমান্ডটি ফিরে আসে:

সংরক্ষিত ওয়ার্কিং ডিরেক্টরি এবং ইনডেক্স স্টেট অন মাস্টার:ওয়েবসাইটে নতুন পরিবর্তন যোগ করুন

আমাদের শেষ প্রতিশ্রুতির সাথে যুক্ত ডিফল্ট বার্তা দেওয়ার পরিবর্তে, আমাদের স্ট্যাশকে তার নিজস্ব বার্তা বরাদ্দ করা হয়েছে৷

একাধিক স্ট্যাশ প্রয়োগ করা

গিট স্ট্যাশ পপ কমান্ডটি আপনার সংগ্রহস্থলে (স্ট্যাশ@{0} ট্যাগ সহ) সবচেয়ে সাম্প্রতিক স্ট্যাশ প্রয়োগ করে। যাইহোক, যখন আপনি একাধিক স্ট্যাশের সাথে কাজ করছেন, আপনি আপনার কোডবেসে একটি নির্দিষ্ট স্ট্যাশ প্রয়োগ করতে চাইতে পারেন।

আপনি আপনার কোডবেসে আবেদন করতে চান এমন স্ট্যাশের সাথে যুক্ত অনন্য আইডি উল্লেখ করে তা করতে পারেন। ধরুন আমরা আমাদের কোডবেসে stash@{1} এ সঞ্চিত স্ট্যাশ প্রয়োগ করতে চাই। আমরা এই কমান্ডটি ব্যবহার করে তা করতে পারি:

git stash পপ stash@{2}

কমান্ড stash@{2}-এ সঞ্চিত পরিবর্তনগুলিকে আমাদের সংগ্রহস্থলে প্রয়োগ করে এবং স্ট্যাশ মুছে দেয়৷

স্ট্যাশ ব্যবহার করে একটি শাখা তৈরি করা

স্ট্যাশিং হল একটি কোডবেসে আপনার করা পরিবর্তনগুলিকে সহজে সংরক্ষণ করার একটি উপায় যখন আপনি অন্য পরিবর্তন করার জন্য কাজ করেন৷

যাইহোক, এমন কিছু সময় হতে পারে যখন, একটি স্ট্যাশ বজায় রাখার পরিবর্তে, আপনি আপনার কোডটি তার নিজস্ব শাখায় স্থানান্তর করতে চান৷

আপনি যখন আপনার কোড মার্জ করেন তখন বিরোধ দেখা দিলে এই দৃশ্যটি দেখা দিতে পারে। আপনি যদি একটি কোডবেসে বড় পরিবর্তন করে থাকেন তবে আপনি একটি কোডকে অন্য শাখায় স্থানান্তর করতে চাইতে পারেন। সেখানেই গিট স্ট্যাশ শাখা কমান্ড আসে।

আপনি একটি নতুন শাখা তৈরি করতে গিট স্ট্যাশ শাখা কমান্ড ব্যবহার করতে পারেন যেখানে একটি স্ট্যাশের পরিবর্তনগুলি প্রয়োগ করা হবে। এই কমান্ডের সিনট্যাক্স নিম্নরূপ:

গিট স্ট্যাশ শাখা <নতুন-শাখা> <স্ট্যাশ-আইডি>

"নতুন-শাখা" প্যারামিটারটি শাখার আইডিকে বোঝায় যা তৈরি করা উচিত। "stash-id" বলতে স্ট্যাশের আইডি বোঝায় যার কোড আপনি নতুন শাখায় আবেদন করতে চান।

ধরুন আমরা আমাদের stash@{2} stash থেকে পরিবর্তনগুলি “update-site” নামক একটি নতুন শাখায় প্রয়োগ করতে চাই। আমরা এই কমান্ডটি ব্যবহার করে তা করতে পারি:

গিট স্ট্যাশ শাখা আপডেট-সাইট stash@{2}

কমান্ডটি ফিরে আসে:

একটি নতুন শাখায় স্যুইচ করা হয়েছে 'আপডেট-সাইট'অন শাখা আপডেট-সাইট পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ করা হবে:নতুন ফাইল:index.jsপরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ হওয়ার জন্য পর্যায়ক্রমে নয়:পরিবর্তিত:index.htmlড্রপড stash@{2} (9a15b9cd20f8988937134d1267fafa47) 

প্রথমত, git stash branch কমান্ড আমাদের stashed পরিবর্তনের জন্য একটি নতুন শাখা তৈরি করে। আমরা আমাদের সংগ্রহস্থলে যে পরিবর্তন করেছি তা নতুন শাখায় প্রয়োগ করা হয়েছে। তারপরে, আমরা সেই শাখাটি দেখার জন্য স্যুইচ করেছি। অবশেষে, আমাদের স্ট্যাশ মুছে ফেলা হয়েছে কারণ লুকিয়ে রাখা কোডটি তার নিজস্ব শাখায় সংরক্ষিত হয়েছে।

একটি গিট স্ট্যাশ মুছুন

একবার আপনি কোডটি স্ট্যাশে ব্যবহার করলে, আপনি stash মুছে ফেলার জন্য git stash drop কমান্ড ব্যবহার করতে পারেন। এখানে গিট স্ট্যাশ ড্রপ কমান্ডের সিনট্যাক্স রয়েছে:

গিট স্ট্যাশ ড্রপ <স্ট্যাশ>

ধরুন আমরা স্ট্যাশ আইডি স্ট্যাশ@{2} দিয়ে ড্রপ করতে চাই। আমরা এই কমান্ডটি ব্যবহার করে তা করতে পারি:

git stash drop stash@{2}

কমান্ডটি ফিরে আসে:

 ড্রপড stash@{2} (82079798c950b053fac0efb7b1d5693864dc96e7)

বিকল্পভাবে, আপনি একটি সংগ্রহস্থলের সাথে যুক্ত সমস্ত স্ট্যাশ মুছে ফেলার জন্য git stash clear কমান্ড ব্যবহার করতে পারেন। এই কমান্ডের সিনট্যাক্স হল:

গিট স্ট্যাশ পরিষ্কার

এই কমান্ডটি আমাদের সংগ্রহস্থলের সমস্ত স্ট্যাশ মুছে দেয়।

নির্দিষ্ট ফাইল আটকে রাখা

git stash কমান্ড ডিফল্টরূপে আপনার বর্তমান কার্যকারী ডিরেক্টরির সমস্ত ট্র্যাক করা ফাইলগুলিকে স্টেশ করে। যাইহোক, কিছু ক্ষেত্রে, আপনি সিদ্ধান্ত নিতে পারেন যে আপনি একটি নির্দিষ্ট ফাইল বা ফাইলের সেট লুকিয়ে রাখতে চান।

আপনি git stash push কমান্ড ব্যবহার করে একটি নির্দিষ্ট ফাইল স্ট্যাশ করতে পারেন। এই কমান্ডটি ব্যবহার করার জন্য এখানে সিনট্যাক্স রয়েছে:

git stash push -m "" 

"বার্তা" প্যারামিটারটি সেই বার্তাটিকে বোঝায় যা আপনার স্ট্যাশের সাথে যুক্ত হবে। "ফাইল" প্যারামিটার হল সেই ফাইলের নাম যা আপনি লুকিয়ে রাখতে চান৷

ধরুন আমরা আমাদের কোডের index.html ফাইলে শুধুমাত্র যে পরিবর্তনগুলি করেছি তা একটি স্ট্যাশে যোগ করতে চাই। আমরা এই কমান্ডটি ব্যবহার করে তা করতে পারি:

git stash push -m "feat:পরিবর্তিত index.html ফাইল" index.html

কমান্ডটি ফিরে আসে:

সংরক্ষিত ওয়ার্কিং ডিরেক্টরি এবং ইনডেক্স স্টেট অন master:feat:পরিবর্তিত index.html ফাইল

কমান্ডটি শুধুমাত্র index.html ফাইলটিকে "feat:পরিবর্তিত index.html ফাইল" কমিট মেসেজ সহ একটি স্ট্যাশে যুক্ত করেছে। আমাদের কোডে করা অন্য সব পরিবর্তন যোগ করা হয়নি।

স্ট্যাশের মধ্যে পার্থক্য দেখান

আপনি যখন স্ট্যাশের সাথে কাজ করছেন, তখন আপনি যে কোডটি লুকিয়ে রেখেছিলেন সেটিতে ফিরে যাওয়ার আগে আপনি একাধিক কমিট জুড়ে আপনার কোডবেসে বিভিন্ন পরিবর্তন করতে পারেন।

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

একটি স্ট্যাশ এবং আপনার সাম্প্রতিক কমিটের মধ্যে পার্থক্য দেখতে, আপনি গিট স্ট্যাশ শো কমান্ড ব্যবহার করতে পারেন। এই কমান্ডের সিনট্যাক্স হল:

git stash শো 

"স্ট্যাশ-আইডি" প্যারামিটার হল স্ট্যাশের আইডি যার পরিবর্তনগুলি আপনি আপনার শাখার সাম্প্রতিক কমিটের সাথে তুলনা করতে চান। ধরুন আমরা আমাদের স্ট্যাশ@{1} স্ট্যাশের কোডটিকে আমাদের কোডের বর্তমান অবস্থার সাথে তুলনা করতে চাই। আমরা এই কমান্ডটি ব্যবহার করে তা করতে পারি:

git stash দেখান stash@{1}

কমান্ডটি ফিরে আসে:

 index.html | 2 +- index.js | 0 2 ফাইল পরিবর্তিত, 1 সন্নিবেশ(+), 1 মুছে ফেলা(-)

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

git stash show -p stash@{1}

উপরোক্ত কমান্ড, যখন সম্পাদিত হয়, ফিরে আসে:

diff --git a/index.html b/index.htmlindex 4dd1ef7..e859c68 100644--- a/index.html+++ b/index.html@@ -1 +1 @@-
+diff --git a/index.js b/index.jsnew ফাইল মোড 100644index 0000000..e69de29

এই আউটপুটটি আমাদের একটি স্ট্যাশে কোডের সম্পূর্ণ তুলনা এবং একটি শাখার সাম্প্রতিক প্রতিশ্রুতি দেখতে দেয়। উপরের আউটপুট, উদাহরণস্বরূপ, আমাদের বলে যে আমরা আমাদের index.html ফাইল থেকে লাইনটি সরিয়ে দিয়েছি (– চিহ্ন দ্বারা চিহ্নিত) এবং আমরা আমাদের index.html ফাইলে লাইন যোগ করেছি (এর দ্বারা বোঝায় + প্রতীক)।

উপসংহার

git stash কমান্ড অস্থায়ীভাবে কোডবেসে আপনার করা পরিবর্তনগুলি সংরক্ষণ করে। আপনি প্রস্তুত হলে, আপনি ফিরে আসতে পারেন এবং আপনার কোডবেসে করা পরিবর্তনগুলি প্রয়োগ করতে পারেন৷

এই টিউটোরিয়ালটি Git-এ stashing এর মূল বিষয়গুলি নিয়ে আলোচনা করেছে এবং কিভাবে আপনি Git stashing বৈশিষ্ট্য ব্যবহার করতে git stash কমান্ড ব্যবহার করতে পারেন। এখন আপনি গিট প্রোর মতো কোড স্ট্যাশিং শুরু করার জন্য প্রয়োজনীয় জ্ঞান দিয়ে সজ্জিত!


  1. গিট রেসকিউতে রিসেট করুন

  2. গিট অ্যাড করার জন্য একটি ধাপে ধাপে গাইড

  3. Git ডিলিট শাখা

  4. গিট পুশ