প্রয়োজনীয় ইনপুট:
- গিট সম্পর্কে আমার নিবন্ধটি পড়ুন, অনুসরণ করুন এবং বুঝুন । এটি নিশ্চিত করতে সাহায্য করবে যে সবকিছু সেট আপ করা হয়েছে এবং যাওয়ার জন্য প্রস্তুত।
- IntelliJ IDEA ইনস্টল করুন।
- সম্পূর্ণ দক্ষতা অর্জনের জন্য এক ঘন্টা ব্যক্তিগত সময় বরাদ্দ করুন।
স্থানীয়ভাবে প্রকল্পটি ক্লোন করুন
এখানে দুটি বিকল্প আছে:- আপনার যদি ইতিমধ্যেই একটি GitHub অ্যাকাউন্ট থাকে এবং পরে কিছু পুশ করতে চান তবে প্রকল্পটি কাঁটাচামচ করা এবং আপনার নিজের অনুলিপি ক্লোন করা ভাল।
- আমার সংগ্রহস্থল ক্লোন করুন এবং সার্ভারে পুরো জিনিসটি পুশ করার ক্ষমতা ছাড়াই স্থানীয়ভাবে সবকিছু করুন। সর্বোপরি, এটি আমার সংগ্রহস্থল :)
-
প্রকল্পের ঠিকানা অনুলিপি করুন:
-
IntelliJ IDEA খুলুন এবং "সংস্করণ নিয়ন্ত্রণ থেকে পান" নির্বাচন করুন:
-
প্রকল্প ঠিকানা কপি এবং পেস্ট করুন:
-
আপনাকে একটি IntelliJ IDEA প্রকল্প তৈরি করতে বলা হবে। অফারটি গ্রহণ করুন:
-
যেহেতু কোনও বিল্ড সিস্টেম নেই এবং এটি এই নিবন্ধের সুযোগের বাইরে, আমরা বিদ্যমান উত্স থেকে প্রকল্প তৈরি করুন নির্বাচন করি :
-
এরপরে আপনি এই সুন্দর পর্দাটি দেখতে পাবেন: এখন যেহেতু আমরা ক্লোনিং বের করেছি, আপনি চারপাশে একবার নজর দিতে পারেন।
Git UI হিসাবে IntelliJ IDEA-তে প্রথম নজর
ক্লোন করা প্রকল্পটি ঘনিষ্ঠভাবে দেখুন: আপনি ইতিমধ্যে সংস্করণ নিয়ন্ত্রণ সিস্টেম সম্পর্কে অনেক তথ্য পেতে পারেন। প্রথমত, আমরা নীচের বাম কোণে সংস্করণ নিয়ন্ত্রণ ফলক আছে. এখানে আপনি সমস্ত স্থানীয় পরিবর্তনগুলি খুঁজে পেতে পারেন এবং কমিটগুলির একটি তালিকা পেতে পারেন ("গিট লগ" এর অনুরূপ)। আসুন লগ- এর একটি আলোচনায় চলে যাই । একটি নির্দিষ্ট ভিজ্যুয়ালাইজেশন রয়েছে যা আমাদের বুঝতে সাহায্য করে যে কীভাবে উন্নয়ন এগিয়েছে। উদাহরণস্বরূপ, আপনি দেখতে পাচ্ছেন যে txt কমিট-এ যুক্ত শিরোনাম দিয়ে একটি নতুন শাখা তৈরি করা হয়েছে, যা পরে মাস্টার শাখায় মার্জ করা হয়েছিল। আপনি যদি একটি প্রতিশ্রুতিতে ক্লিক করেন, আপনি ডান কোণে কমিট সম্পর্কে সমস্ত তথ্য দেখতে পাবেন: এর সমস্ত পরিবর্তন এবং মেটাডেটা।তাছাড়া, আপনি প্রকৃত পরিবর্তন দেখতে পারেন. আমরা আরও দেখি যে সেখানে একটি বিরোধের সমাধান হয়েছিল। আইডিইএও এটি খুব ভালভাবে উপস্থাপন করে। আপনি যদি এই কমিটের সময় পরিবর্তন করা ফাইলটিতে ডাবল-ক্লিক করেন, তাহলে আমরা দেখতে পাব যে কীভাবে বিরোধটি সমাধান করা হয়েছে: আমরা লক্ষ্য করি যে বাম এবং ডানদিকে আমাদের একই ফাইলের দুটি সংস্করণ রয়েছে যা একটিতে একত্রিত করা প্রয়োজন। এবং মাঝখানে, আমরা চূড়ান্ত মার্জ ফলাফল আছে. যখন একটি প্রকল্পের অনেকগুলি শাখা, কমিট এবং ব্যবহারকারী থাকে, তখন আপনাকে শাখা, ব্যবহারকারী এবং তারিখ অনুসারে আলাদাভাবে অনুসন্ধান করতে হবে: আমরা শুরু করার আগে শেষ যে জিনিসটি আমি ব্যাখ্যা করতে চাই তা হল আমরা কোন শাখায় আছি তা কীভাবে বোঝা যায়৷ আমি আপনাকে দেব। এটা বের করার জন্য এক মিনিট... আপনি কি এটি খুঁজে পেয়েছেন? ছেড়ে দেত্তয়া? :D নীচের ডানদিকে, গিট: মাস্টার লেবেলযুক্ত একটি বোতাম রয়েছে. "Git:" যা অনুসরণ করে তা হল বর্তমান শাখা। যদি আপনি বোতামটি ক্লিক করেন, আপনি অনেক দরকারী জিনিস করতে পারেন: অন্য শাখায় স্যুইচ করুন, একটি নতুন তৈরি করুন, একটি বিদ্যমান একটির নাম পরিবর্তন করুন এবং আরও অনেক কিছু।একটি সংগ্রহস্থল সঙ্গে কাজ
দরকারী হটকি
ভবিষ্যতের কাজের জন্য, আপনাকে কয়েকটি খুব দরকারী হটকি মনে রাখতে হবে:- CTRL+T — রিমোট রিপোজিটরি (গিট টান) থেকে সর্বশেষ পরিবর্তনগুলি পান।
- CTRL+K - একটি প্রতিশ্রুতি তৈরি করুন / সমস্ত বর্তমান পরিবর্তনগুলি দেখুন। এতে আনট্র্যাক করা এবং পরিবর্তিত ফাইল উভয়ই অন্তর্ভুক্ত রয়েছে (গিট সম্পর্কে আমার নিবন্ধটি দেখুন, যা এটি ব্যাখ্যা করে) (গিট কমিট)।
- CTRL+SHIFT+K — এটি রিমোট রিপোজিটরিতে পরিবর্তনগুলি পুশ করার কমান্ড। সমস্ত কমিট স্থানীয়ভাবে তৈরি করা হয়েছে এবং এখনও রিমোট রিপোজিটরিতে নেই তা পুশ করা হবে (গিট পুশ)।
- ALT+CTRL+Z — স্থানীয় সংগ্রহস্থলে তৈরি করা শেষ প্রতিশ্রুতির অবস্থায় একটি নির্দিষ্ট ফাইলে পরিবর্তন করা হয়। আপনি যদি উপরের বাম কোণে পুরো প্রকল্পটি নির্বাচন করেন, আপনি সমস্ত ফাইলের পরিবর্তনগুলি ফিরিয়ে আনতে পারেন৷
আমরা কি চাই?
কাজ সম্পন্ন করার জন্য, আমাদের একটি মৌলিক পরিস্থিতি আয়ত্ত করতে হবে যা সর্বত্র ব্যবহৃত হয়। উদ্দেশ্য হল একটি পৃথক শাখায় নতুন কার্যকারিতা প্রয়োগ করা এবং তারপরে এটিকে একটি দূরবর্তী সংগ্রহস্থলে ঠেলে দেওয়া (তারপর আপনাকে মূল শাখায় একটি টান অনুরোধও তৈরি করতে হবে, তবে এটি এই নিবন্ধের সুযোগের বাইরে)। এটি করার জন্য কি প্রয়োজন?-
প্রধান শাখার সমস্ত বর্তমান পরিবর্তনগুলি পান (উদাহরণস্বরূপ, "মাস্টার")।
-
এই প্রধান শাখা থেকে, আপনার কাজের জন্য একটি পৃথক শাখা তৈরি করুন।
-
নতুন কার্যকারিতা প্রয়োগ করুন।
-
প্রধান শাখায় যান এবং আমরা কাজ করার সময় কোন নতুন পরিবর্তন হয়েছে কিনা তা পরীক্ষা করে দেখুন। যদি না হয়, তাহলে সবকিছু ঠিক আছে। কিন্তু যদি পরিবর্তন হয়, তাহলে আমরা নিম্নলিখিতগুলি করি: কর্মরত শাখায় যান এবং প্রধান শাখা থেকে আমাদের শাখায় পরিবর্তনগুলি পুনঃস্থাপন করুন। যদি সবকিছু ঠিকঠাক হয়, তাহলে দারুণ। কিন্তু এটা সম্পূর্ণভাবে সম্ভব যে সেখানে সংঘর্ষ হবে। এটি যেমন ঘটবে, দূরবর্তী সংগ্রহস্থলে সময় নষ্ট না করে সেগুলি আগে থেকেই সমাধান করা যেতে পারে।
আপনি ভাবছেন কেন আপনি এই কাজ করা উচিত? এটি ভাল আচরণ এবং স্থানীয় সংগ্রহস্থলে আপনার শাখাকে ঠেলে দেওয়ার পরে সংঘাত ঘটতে বাধা দেয় (অবশ্যই, দ্বন্দ্ব এখনও ঘটবে, তবে এটি অনেক ছোট হয়ে যায় )।
- রিমোট রিপোজিটরিতে আপনার পরিবর্তনগুলি পুশ করুন।
রিমোট সার্ভার থেকে পরিবর্তন পান?
আমি একটি নতুন প্রতিশ্রুতি সহ README-এ একটি বিবরণ যোগ করেছি এবং এই পরিবর্তনগুলি পেতে চাই৷ যদি পরিবর্তনগুলি স্থানীয় সংগ্রহস্থলে এবং দূরবর্তী উভয় ক্ষেত্রেই করা হয়, তাহলে আমরা একটি মার্জ এবং একটি রিবেসের মধ্যে বেছে নিতে আমন্ত্রিত। আমরা একত্রীকরণ চয়ন. CTRL+T লিখুন : আপনি এখন দেখতে পাচ্ছেন কিভাবে README পরিবর্তিত হয়েছে, অর্থাৎ রিমোট রিপোজিটরি থেকে পরিবর্তনগুলি টেনে আনা হয়েছে, এবং নীচের ডানদিকে আপনি সার্ভার থেকে আসা পরিবর্তনগুলির সমস্ত বিবরণ দেখতে পাবেন৷মাস্টারের উপর ভিত্তি করে একটি নতুন শাখা তৈরি করুন
এখানে সবকিছু সহজ.-
নীচে ডান কোণায় যান এবং Git: master এ ক্লিক করুন । + নতুন শাখা নির্বাচন করুন ।
চেকআউট শাখার চেকবক্সটি নির্বাচন করুন এবং নতুন শাখার নাম লিখুন। আমার জন্য, এটি readme-উন্নতকারী হবে ।
Git: master তারপর Git: readme-improver এ পরিবর্তিত হবে ।
সমান্তরাল কাজ অনুকরণ করা যাক
দ্বন্দ্ব প্রদর্শিত হওয়ার জন্য, কাউকে সেগুলি তৈরি করতে হবে :D আমি ব্রাউজারের মাধ্যমে একটি নতুন প্রতিশ্রুতি সহ README সম্পাদনা করব, এইভাবে সমান্তরাল কাজ অনুকরণ করে৷ আমি এটিতে কাজ করার সময় কেউ একই ফাইলে পরিবর্তন করেছে। ফলে সংঘর্ষ হবে। আমি লাইন 10 থেকে "fully" শব্দটি সরিয়ে দেব।আমাদের কার্যকারিতা বাস্তবায়ন
আমাদের কাজ হল README পরিবর্তন করা এবং নতুন নিবন্ধে একটি বিবরণ যোগ করা। অর্থাৎ Git-এ কাজ IntelliJ IDEA এর মাধ্যমে হয়। এটি যোগ করুন: পরিবর্তনগুলি সম্পন্ন হয়েছে। এখন আমরা একটি প্রতিশ্রুতি তৈরি করতে পারি। CTRL+K টিপুন , যা আমাদের দেয়: একটি প্রতিশ্রুতি তৈরি করার আগে, আমাদের এই উইন্ডোটি কী অফার করে তা ঘনিষ্ঠভাবে দেখতে হবে। আপনাকে কোথায় দেখতে হবে তা দেখানোর জন্য আমি লাল তীর যোগ করেছি। এখানে আকর্ষণীয় জিনিস অনেক আছে. কমিট মেসেজ বিভাগে , আমরা কমিটের সাথে যুক্ত টেক্সট লিখি। তারপর এটি তৈরি করতে, আমাদের কমিট ক্লিক করতে হবে. আমি এখনও হটকি দিয়ে এটি কীভাবে করব তা খুঁজে পাইনি। যদি কেউ খুঁজে পায় কিভাবে, দয়া করে আমাকে লিখুন - এটি আমাকে খুব খুশি করবে। আমরা লিখি যে README পরিবর্তিত হয়েছে এবং কমিট তৈরি করুন। কমিটের নাম সহ নীচের বাম কোণে একটি সতর্কতা পপ আপ হয়:প্রধান শাখা পরিবর্তিত হয়েছে কিনা পরীক্ষা করুন
আমরা আমাদের কাজ সম্পন্ন করেছি। এটা কাজ করে। আমরা পরীক্ষা লিখেছি। সবকিছু ঠিক আছে. কিন্তু সার্ভারে পুশ করার আগে, আমাদের এখনও চেক করতে হবে যে এর মধ্যে মূল শাখায় কোন পরিবর্তন হয়েছে কিনা। কিভাবে ঘটতে পারে? বেশ সহজে: কেউ আপনার পরে একটি টাস্ক গ্রহণ করে এবং কেউ আপনার কাজটি শেষ করার চেয়ে দ্রুত তা শেষ করে। তাই আমাদের মাস্টার ব্রাঞ্চে যেতে হবে। এটি করার জন্য, নীচের স্ক্রীনশটে নীচের ডানদিকের কোণায় যা দেখানো হয়েছে তা করতে হবে: মাস্টার শাখায়, দূরবর্তী সার্ভার থেকে এর সর্বশেষ পরিবর্তনগুলি পেতে CTRL+T টিপুন। কী পরিবর্তন হয়েছে তা দেখে আপনি সহজেই দেখতে পারবেন কী হয়েছে:"fully" শব্দটি সরানো হয়েছে৷ হয়তো মার্কেটিং থেকে কেউ সিদ্ধান্ত নিয়েছে যে এটি এমনভাবে লেখা উচিত নয় এবং বিকাশকারীদের এটি আপডেট করার জন্য একটি টাস্ক দিয়েছে। আমাদের কাছে এখন মাস্টার শাখার সর্বশেষ সংস্করণের একটি স্থানীয় অনুলিপি রয়েছে। রিডমি-ইম্প্রোভার- এ ফিরে যান । এখন আমাদের মাস্টার শাখা থেকে আমাদের শাখায় পরিবর্তনগুলিকে পুনঃস্থাপন করতে হবে। আমরা এটি করি: আপনি যদি সবকিছু সঠিকভাবে করেন এবং আমার সাথে অনুসরণ করেন, ফলাফলটি README ফাইলে একটি দ্বন্দ্ব দেখাবে: এখানে আমাদের বোঝার এবং ভিজিয়ে রাখার জন্য অনেক তথ্য রয়েছে। এখানে ফাইলগুলির একটি তালিকা দেখানো হয়েছে (আমাদের ক্ষেত্রে, একটি ফাইল) যেগুলির মধ্যে দ্বন্দ্ব রয়েছে৷ আমরা তিনটি বিকল্প থেকে বেছে নিতে পারি:- আপনার গ্রহণ করুন — শুধুমাত্র readme-improver থেকে পরিবর্তন গ্রহণ করুন।
- তাদের গ্রহণ করুন - শুধুমাত্র মাস্টার থেকে পরিবর্তন গ্রহণ করুন।
- একত্রিত করুন - আপনি কী রাখতে চান এবং কী বাতিল করতে চান তা বেছে নিন।
- এই রিডমি-ইম্প্রোভারের পরিবর্তন।
- একত্রিত ফলাফল. আপাতত, পরিবর্তনের আগে এটিই ছিল।
- মাস্টার শাখা থেকে পরিবর্তন.
GO TO FULL VERSION