আপনার প্রতিশ্রুতিবদ্ধতার জন্য নমনীয় স্থান হ'ল মঞ্চের উদ্দেশ্য । আমি মনে করি যদি আপনি কেন্দ্রিয়করণকৃত সংস্করণ নিয়ন্ত্রণ ব্যবস্থার, যেমন সাবভারশন হিসাবে গিটকে আলাদা করেন তবে এটি আরও স্পষ্ট হয়ে উঠবে।
পরাভব
বিবর্তনে আপনি আপনার কার্যকরী অনুলির কয়েকটি ফাইল কমিট করতে নির্বাচন করতে পারেন। তবে কেবলমাত্র সম্পূর্ণ ফাইল। এখন: আপনি যদি ফাইলটি স্টেজ করতে চান A
, ফাইল নয় B
, এবং ফাইলের C
সাথে সম্পর্কিত ফাইলের A
অংশগুলি ফাইলের পরিবর্তনের উপর নির্ভরশীল অংশগুলি নয় B
(তারপরে আপনার প্রতিশ্রুতিবদ্ধ ধারাবাহিকতায় সমস্যা হবে)।
git
গিট স্টেজিং সরবরাহ করে এটি সমাধান করে দ্বিতীয় কার্য নকল হিসাবে। মঞ্চক্ষেত্রের অঞ্চলে আপনি একটি স্ন্যাপশট একসাথে রাখছেন যা আপনি প্রতিশ্রুতিবদ্ধ (মোটামুটি কথা বলছেন)।
সুতরাং মঞ্চের অঞ্চলে আপনি একটি স্ন্যাপশট তৈরি করতে পারেন যা এতে পরিবর্তন A
এবং ফাইলের একটি সংস্করণ অন্তর্ভুক্ত করে C
যা কেবলমাত্র পরিবর্তনগুলি প্রতিফলিত করে A
।
নির্দিষ্ট প্রশ্নের জন্য
আপনি যে কোনও মুহুর্তে মঞ্চস্থ করতে পারেন। আমি কমিটিকে লঞ্চ করার আগে আমি ব্যক্তিগতভাবে মঞ্চস্থ করতে পছন্দ করি।
স্টেজেড কোনও ফাইলে পরিবর্তন আসার পরে এবং সেই ফাইলটি কার্যকরী অনুলিপিতে পরিবর্তন করার পরে আপনি অবশ্যই পর্যায়ক্রমিক ফাইলটি পরিবর্তন করেন নি। আপনি সিদ্ধান্ত নিতে পারেন যে সেগুলিও মঞ্চস্থ করতে হবে বা তাদের পরিবর্তনগুলি মঞ্চস্থ করতে হবে কিনা। উদাহরণস্বরূপ, আপনি যদি চালনা করেন তবে git gui citool
স্টেজড এবং স্টেস্টেড সংস্করণগুলির বিভিন্নতা দেখতে পাবেন (লাইন ভিত্তিক মঞ্চায়ন এবং প্রতিশ্রুতিবদ্ধ করার জন্য দুর্দান্ত এবং সাধারণ সরঞ্জাম)।
গিট এখানে সতর্ক, যা সম্ভবত ভাল জিনিস।
সাধারণ প্রতিশ্রুতি কৌশল: দানাদার প্রতিশ্রুতিবদ্ধ
আমি মনে করি "কখন আমার মঞ্চ করা উচিত" প্রশ্নটি সম্পর্কে কথা বলার সময়, কারও অভ্যাস করার অভ্যাস সম্পর্কেও কথা বলা উচিত।
সেন্ট্রালাইজড ভিসিএস
সেন্ট্রালাইজড ভার্সন কন্ট্রোল সিস্টেমগুলিতে যেখানে আপনি একটি কেন্দ্রীয় সার্ভারের কাছে প্রতিশ্রুতিবদ্ধ হন, সহকর্মীদের পক্ষে এটি গুরুত্বপূর্ণ ছিল যে আপনার কমিটগুলি সম্পূর্ণ এবং ভালভাবে পরীক্ষিত। সুতরাং লোকে খুব অল্প সময়ে প্রতিশ্রুতিবদ্ধ হওয়ার চেষ্টা করবে এবং তারপরে একটি ত্রুটির সম্ভাবনা হ্রাস করার জন্য সম্পূর্ণ ফাইলের অবস্থার প্রতিশ্রুতিবদ্ধ। সুতরাং, একটি কমিটগুলি বেশ বড় অংশ হতে থাকে যার মধ্যে প্রচুর পরিবর্তন অন্তর্ভুক্ত থাকে (যদি তারা সাধারণ সমাধান না হয়)। একটি প্রতিশ্রুতি পরিবর্তন সম্পূর্ণ সম্পর্কযুক্ত হতে পারে।
git
গিট-এ স্থানীয়ভাবে প্রতিশ্রুতিবদ্ধ হয়, কেবলমাত্র তাদের একটি সার্ভারে ঠেলে দেওয়া সর্বজনীন করে তোলে। সুতরাং প্রতিশ্রুতিবদ্ধ এক অর্থে সস্তা । সাবস্ট্রেশন অর্থে প্রতিশ্রুতিবদ্ধ হওয়া git commit
অনুসরণকারীদের সাথে তুলনীয় git push
। এই পার্থক্যটি গুরুত্বপূর্ণ।
আপনি একই ফাইলটিতে অন্য লাইনগুলি পরিবর্তন করে থাকলেও গিট আপনাকে কোডের একক লাইন প্রতিশ্রুতিবদ্ধ করতে দেয়। এটি আপনাকে অনেক সুবিধা দেয় যেহেতু আপনি উদাহরণস্বরূপ 100 লাইনটিতে একটি সুরক্ষা বাগফিক্স প্রতিশ্রুতিবদ্ধ করতে পারেন যখন নতুন বৈশিষ্ট্য প্রবর্তন করতে 300-50 রেখা পরিবর্তন করা হয়েছে।
- আপনি বিভিন্ন কমিটে বিভিন্ন পরিবর্তন আলাদা করতে পারেন। এটি আপনার সংস্করণ ইতিহাসে এগুলিকে দুর্দান্তভাবে পৃথক করে এবং এমনকি আপনাকে অন্যটি নয় তবে একটিতে উল্টাতে দেয়।
- আপনার প্রতিশ্রুতিবদ্ধভাবে অগত্যা আপনার কার্যকরী কপির একটি "সংকলন" অবস্থা প্রতিবিম্বিত করতে হবে না (যদিও আমি এটি সেভাবে রাখার চেষ্টা করি)।
তাহলে কোনও "মান নিয়ন্ত্রণ" এবং প্রতিশ্রুতিতে বিল্ড-গ্যারান্টি কোথায় রয়েছে যে কোনও সাবস্ট্রেশন ব্যবহারকারী আশা করবে? এটি গিটের অন্যান্য ক্রিয়ায় স্থানান্তরিত হয়। আপনি এখনও সরকারী ভাণ্ডারে প্রোগ্রামের কার্যকারিতা স্থিতির বাইরে যেতে চান। অতএব আপনি পরীক্ষাটি সফল হয়েছে এবং আপনার পরিবর্তনগুলি এগিয়ে দেওয়ার আগে প্রোগ্রামটি কাজ করে তা নিশ্চিত করে নিন।
এছাড়াও, শাখাটিকে সর্বোচ্চ ব্যবহার করার চেষ্টা করুন। প্রচুর ছোট্ট পরিবর্তনগুলি করার সময় আপনি একটি দুর্দান্ত সংস্করণের ইতিহাসের সাথে সমাপ্ত হন। আপনি যদি শাখাগুলিতে কাজ করেন, আপনি সেই দানাদার প্রতিশ্রুতিগুলি শাখার নাম অনুসারে শ্রেণিবদ্ধ করতে পারেন এবং তারপরে তাদের আবার মার্জ করুন (বিকল্পটিও --no-ff
সংরক্ষণ করবে যে এই বৈশিষ্ট্যগুলি একটি অনন্য শাখায় বাস করত)।
অর্থাৎ আপনি master
কেবল শাখায় মার্জ করার অভ্যাসটি রাখতে পারেন , যদি শাখাটি ভাল অবস্থায় থাকে। মাইলফলক এবং রিলিজ ট্র্যাক করতে আপনি ট্যাগ ব্যবহার করতে পারেন।
এখন মঞ্চায় ফিরে আসুন: প্রতি প্রতি প্রতিশ্রুতি কয়েক লাইন প্রতিশ্রুতিবদ্ধ করার পরে আপনি সরাসরি প্রত্যাবর্তনের আগে মঞ্চস্থ হবেন। (কমপক্ষে এটি আমি এটি করি)।
git diff
এবংgit diff --cached
ভাল, তবে কখনও কখনও আমি আরও চাই) Find