এটি পাল্টা শব্দ শোনাচ্ছে, তবে আমাকে শুনুন:
গিটের সাথে পরীক্ষা শুরু করতে তাদের উত্সাহিত করুন
গিট সম্পর্কে একটি আকর্ষণীয় বিষয় হ'ল যে কোনও স্থানীয় অপারেশন সম্পূর্ণ নিরাপদ করা আশ্চর্যজনকভাবে সহজ। আমি যখন প্রথমে গিট ব্যবহার করা শুরু করলাম, আমি নিজেকে যে কাজটি করতে দেখলাম তার মধ্যে একটির মধ্যে আমি কোনও কিছু বোধগম্য হওয়ার ক্ষেত্রে ব্যাক আপ হিসাবে পুরো ডিরেক্টরিটি জিপআপ করা ছিল । আমি পরে আবিষ্কার করেছি যে এটি একটি বিশাল কুঁচক এবং এটি আপনার কাজটি রক্ষা করার জন্য প্রায়শই প্রয়োজন হয় না তবে এটি খুব সুরক্ষিত এবং খুব সরল হওয়ার গুণ রয়েছে যদিও আপনি জানেন না যে আপনি কীভাবে কাজ করছেন এবং কীভাবে করছেন আপনি যে কমান্ডটি চেষ্টা করতে চান সেটি চালু হয়ে যাবে। আপনি যখন এটি করছেন কেবল তখনই আপনাকে এড়াতে হবে push
। আপনি যদি কিছু না চাপেন তবে আপনি যা চান তা চেষ্টা করার এটি একটি 100% নিরাপদ উপায়।
স্টাফ চেষ্টা করার ভয় গিট শিখতে সবচেয়ে বড় বাধা। এটা আপনি দেয় তাই সবকিছু যে এটা কোন ধরনের কঠিন এর উপর অনেক নিয়ন্ত্রণ। বাস্তবতাটি হ'ল আপনি আপনার বেশিরভাগ দৈনিক ব্যবহারের জন্য কয়েকটি খুব সুরক্ষিত অপারেশনগুলিতে আটকে রাখতে পারেন, তবে কোনটি আদেশ দেয় তা সন্ধান করতে কিছু অন্বেষণ করতে হবে।
তাদের সুরক্ষার উপলব্ধি করে , তারা কীভাবে নিজেরাই জিনিসগুলি বানাতে পারে তা বোঝার চেষ্টা করতে আরও বেশি আগ্রহী হবে। এবং তাদের স্থানীয় মেশিনে তাদের জন্য কাজ করে এমন একটি ব্যক্তিগত কাজের প্রবাহ খুঁজতে তারা আরও বেশি ক্ষমতায়িত হবে। এবং যদি সবাই স্থানীয়ভাবে একই জিনিস না করে তবে এটি ঠিক আছে, যতক্ষণ তারা চাপ দেয় তার সাথে মান অনুসরণ করে । যদি কোনও অপারেশন করার আগে পুরো রেপোটিকে জিপ করে নেওয়া হয় যাতে তাদের সেভাবে অনুভূতি হয় it's তারা যাওয়ার সময় এবং স্টাফ চেষ্টা করার সাথে সাথে তারা কাজ করার আরও ভাল উপায়গুলি বেছে নিতে পারে। নিজেকে স্টাফ চেষ্টা করা এবং এটি কী করে তা দেখতে শুরু করতে কিছু পেতে ।
এর অর্থ এই নয় যে প্রশিক্ষণ অর্থহীন। বিপরীতে, প্রশিক্ষণ আপনাকে বৈশিষ্ট্য এবং নিদর্শন এবং নিয়মের সাথে পরিচয় করিয়ে দিতে সহায়তা করতে পারে। কিন্তু এটা বসা এবং আসলে জন্য একটি প্রতিস্থাপন নয় করছেন আপনার দৈনন্দিন কাজে স্টাফ। গিট বা এসভিএন উভয়ই এমন জিনিস নয় যেগুলি আপনি কেবল একটি ক্লাসে যেতে পারেন এবং তারপরে আপনি সমস্ত কিছুই জানেন। যা শুরু করেছো ব্যবহার ভাল যা সমস্যার জন্য উপযোগী হয় তাদের এবং যা বৈশিষ্ট্য সঙ্গে পরিচিত পেতে আপনার সমস্যার সমাধানের তাদের।
গিটের ইনস এবং আউটস শিখতে তাদের নিরুৎসাহিত করা বন্ধ করুন
আমি কোনও বিষয়কে ধাক্কা না দেওয়ার কথা উল্লেখ করেছি, যা আপনি তাদের শেখাচ্ছেন এমন একটিগুলির বিরুদ্ধে যায়: সর্বদা "প্রতিশ্রুতিবদ্ধ এবং পুশ"। আমার বিশ্বাস আপনি তাদের এটি করতে বলা বন্ধ করুন এবং তাদের বিপরীত কাজ শুরু করতে বলুন। গিটের মূলত 5 টি "জায়গা" রয়েছে যেখানে আপনার পরিবর্তনগুলি হতে পারে:
- ডিস্কে, নিঃশর্ত
- স্থির কিন্তু প্রতিশ্রুতিবদ্ধ না
- একটি স্থানীয় প্রতিশ্রুতি
- একটি স্থানীয় স্ট্যাশ
- রিমোট রিপোজিটরিগুলি (কেবলমাত্র কমিট এবং ট্যাগগুলি বিভিন্ন ধরণের সংগ্রহের মাঝে ধাক্কা দেয় এবং টানা থাকে)
একক পদক্ষেপে সবকিছু টানতে এবং ধাক্কা দেওয়ার জন্য তাদের উত্সাহিত করার পরিবর্তে, এই 5 টি পৃথক স্থানে লিভারেজ করার জন্য তাদের উত্সাহিত করুন। তাদেরকে উত্সাহিত করুন:
এটি তাদের কাজ সবার কাছে প্রকাশ্যে সরবরাহ করার আগে তাদের কাজগুলি পরীক্ষা করতে উত্সাহিত করবে , যার অর্থ তারা শীঘ্রই তাদের ভুলগুলি ধরবে। তারা প্রতিশ্রুতি দেখবে এবং ভাববে, "অপেক্ষা করুন, আমি যা চাইছিলাম তা নয়" এবং এসভিএন-এর বিপরীতে তারা ফিরে যেতে পারে এবং চাপ দেওয়ার আগে আবার চেষ্টা করতে পারে।
একবার তাদের পরিবর্তনগুলি কোথায় তা বোঝার ধারণায় অভ্যস্ত হয়ে গেলে তারা কখন পদক্ষেপগুলি এড়িয়ে চলে এবং নির্দিষ্ট ক্রিয়াকলাপগুলি একত্রিত করবেন তা সিদ্ধান্ত নেওয়া শুরু করতে পারে (কখন টানবেন কারণ আপনি ইতিমধ্যে জানেন যে আপনি আনতে চান + মার্জ করতে চান বা কখন কমিট ও পুশ বিকল্পটি ক্লিক করবেন) ।
এটি আসলে SVN উপর Git বিরাট বেনিফিট এক, এবং Git হয় পরিকল্পিত মনের মধ্যে এই ব্যবহার প্যাটার্ন সঙ্গে। বিপরীতে এসভিএন একটি কেন্দ্রীয় সংগ্রহস্থল ধরেছে, তাই গিটের জন্য সরঞ্জামটি একই কর্মপ্রবাহের জন্য অনুকূলিত না হলে এটি আশ্চর্যজনক নয়। এসভিএন-তে, যদি আপনার প্রতিশ্রুতি ভুল হয়, তবে আপনার একমাত্র আসল পথটি ভুলটিকে পূর্বাবস্থায় ফিরিয়ে আনার জন্য নতুন প্রতিশ্রুতি।
এটি করার ফলে স্বাভাবিকভাবেই পরবর্তী কৌশলটি পৌঁছে যাবে:
তাদের স্থানীয় শাখা ব্যবহার করতে উত্সাহিত করুন
স্থানীয় শাখাগুলি ভাগ করে নেওয়া ফাইলগুলিতে কাজ করার ব্যথা পয়েন্টগুলিকে অনেকটা সহজ করে। আমি আমার নিজের শাখায় যা চাই তা পরিবর্তন করতে পারি এবং এটি কাউকে প্রভাবিত করবে না কারণ আমি তাদের চাপ দিচ্ছি না। তারপরে সময়টি আসার পরে, আমি একই একই মার্জ এবং রিবেস কৌশলগুলি ব্যবহার করতে পারি, কেবল সহজ:
- আমি আমার স্থানীয় শাখাটি পুনরায় চালু করতে পারি, যা এটিকে মাস্টার তুচ্ছ হিসাবে মিশে যায়।
- আমি আমার স্থানীয় শাখার পরিবর্তনগুলিতে এটি আনতে মাস্টারটিতে একটি সরল মার্জ (একটি নতুন প্রতিশ্রুতি তৈরি করতে) ব্যবহার করতে পারি।
- আমি যদি মনে করি আমার শাখাটি উদ্ধার করতে খুব বেশি গণ্ডগোল করে তবে আমি স্কোয়াশকে আমার সম্পূর্ণ স্থানীয় শাখাকে মাস্টার সম্পর্কে একক প্রতিশ্রুতিতে মার্জ করতে পারি।
স্থানীয় শাখাগুলি ব্যবহার পদ্ধতিগত শাখার কৌশলটি খুঁজে বের করার জন্যও একটি ভাল শুরু start এটি আপনার ব্যবহারকারীদের তাদের নিজস্ব শাখা প্রশস্তকরণের আরও ভাল বোঝার জন্য সহায়তা করে, সুতরাং আপনি প্রয়োজন এবং দলের বর্তমান বোঝাপড়া / দক্ষতার স্তরগুলির উপর ভিত্তি করে একটি কৌশল বেছে নিতে পারেন এবং কেবল গিটফ্লোতে বাদ পড়বেন না কারণ প্রত্যেকে এটি শুনেছে।
সারাংশ
সংক্ষেপে, গিটটি এসভিএন নয় এবং এর মতো চিকিত্সা করা যায় না। তোমার দরকার:
- নিরাপদ प्रयोगকে উত্সাহিত করে ভয়কে নির্মূল করুন।
- গিট কীভাবে আলাদা তা বুঝতে তাদের সহায়তা করুন যাতে তারা কীভাবে তাদের স্বাভাবিক কর্মপ্রবাহকে পরিবর্তন করে তা দেখতে পারে।
- তাদের সমস্যাগুলি আরও সহজে সমাধান করতে সহায়তা করার জন্য উপলব্ধ বৈশিষ্ট্যগুলি বুঝতে তাদের সহায়তা করুন।
এটি সমস্ত আপনি ধীরে ধীরে আরও ভাল গিট ব্যবহার অবলম্বন করতে সহায়তা করবে , যতক্ষণ না আপনি এমন কোনও পর্যায়ে পৌঁছাবেন যেখানে আপনি মান নির্ধারণের সেটটি প্রয়োগ করতে শুরু করতে পারেন।
বিশেষ বৈশিষ্ট্যগুলো
তাত্ক্ষণিক শব্দটিতে নিম্নলিখিত ধারণাগুলি সহায়তা করতে পারে।
রি-বেসের ফলে
আপনি পুনর্বাসনের কথা উল্লেখ করেছেন এবং এটি আপনার প্রশ্নে সত্যই বুঝতে পারছেন না। সুতরাং এখানে আমার পরামর্শ: আমি স্রেফ যা বর্ণনা করেছি তা চেষ্টা করে দেখুন। অন্য কেউ কিছু পরিবর্তন ঠেলে যখন স্থানীয়ভাবে কিছু পরিবর্তন করুন। স্থানীয়ভাবে আপনার পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ । ব্যাক আপ হিসাবে আপনার সংগ্রহস্থল ডিরেক্টরিটি জিপ আপ করুন। অন্য ব্যক্তির পরিবর্তনগুলি আনুন। এখন একটি রিবেস কমান্ড চালানোর চেষ্টা করুন এবং দেখুন আপনার প্রতিশ্রুতিগুলির কি ঘটে! আপনি অন্তহীন ব্লগ পোস্টগুলি পড়তে পারেন বা পুনর্বাসনের বিষয়ে প্রশিক্ষণ এবং কীভাবে আপনার এটি ব্যবহার করা উচিত বা ব্যবহার করা উচিত নয়, তবে এগুলির কোনওটিই এটিকে সরাসরি কাজ করে দেখার জন্য প্রতিস্থাপন নয়। সুতরাং এটি চেষ্টা করে দেখুন।
merge.ff=only
এটি একটি ব্যক্তিগত স্বাদের বিষয় হতে চলেছে, তবে আমি অন্তত অস্থায়ীভাবে এটির প্রস্তাব দিচ্ছি যেহেতু আপনি উল্লেখ করেছেন যে আপনি ইতিমধ্যে দ্বন্দ্ব পরিচালনার ক্ষেত্রে সমস্যায় পড়েছেন। আমি এটিকে সেট merge.ff
করারonly
পরামর্শ দিচ্ছি :
git config --global merge.ff only
"ff" এর অর্থ "দ্রুত এগিয়ে" forward গিটারটি যখন বিভিন্ন কমিট থেকে পরিবর্তনগুলি একত্রিত করার প্রয়োজন হয় না তখন একটি দ্রুত এগিয়ে ফেলা মার্জ হয়। এটি কেবল শাখার পয়েন্টারটিকে গ্রাফের সরলরেখার সাথে একটি নতুন অঙ্গীকারের দিকে নিয়ে যায় moves
এটি বাস্তবে যা করে তা হ'ল স্বয়ংক্রিয়ভাবে মার্জ কমিটগুলি তৈরি করার চেষ্টা থেকে গিটকে রোধ করে। সুতরাং আমি যদি স্থানীয়ভাবে কিছু প্রতিশ্রুতিবদ্ধ করি এবং তারপরে অন্যটির পরিবর্তনগুলি টেনে না ফেলি, তবে মার্জ কমিট তৈরি করার চেষ্টা করার পরিবর্তে (এবং সম্ভাব্যরূপে ব্যবহারকারীকে দ্বন্দ্ব মোকাবেলায় জোর করে), মার্জটি কেবল ব্যর্থ হবে। কার্যত, গিটটি কেবলমাত্র একটি সম্পাদন করবে fetch
। যখন আপনার কোনও স্থানীয় কমিট না থাকে, তখন মার্জটি স্বাভাবিকভাবে এগিয়ে চলে।
এটি ব্যবহারকারীদের একীভূত করার চেষ্টা করার আগে বিভিন্ন কমিটগুলি পর্যালোচনা করার সুযোগ দেয় এবং কীভাবে তাদের সংমিশ্রণকে সর্বোত্তমভাবে পরিচালনা করতে হয় সে সম্পর্কে সিদ্ধান্ত নিতে বাধ্য করে। আমি রিবেস করতে পারি, একত্রীকরণ ( git merge --no-ff
কনফিগারেশনটি বাইপাস ব্যবহার করে ) দিয়ে এগিয়ে যেতে পারি, বা আমার আপাতত আমার পরিবর্তনগুলি মার্জ করে দেওয়া এবং পরে এটি পরিচালনা করতে পারি handle আমি মনে করি এই ছোট গতির দ্বিধা আপনার দলটিকে মার্জ সম্পর্কে ভুল সিদ্ধান্ত নিতে এড়াতে সহায়তা করবে। মার্জগুলি পরিচালনা করার ক্ষেত্রে আপনার দলটি একবারে এটি বন্ধ করে দিতে পারেন।