প্রায় সব ভার্সন কন্ট্রোল সিস্টেমে শাখার বিকল্প রয়েছে। কিন্তু গিট তার দ্রুত শাখা ক্ষমতার জন্য পরিচিত। গিট শাখাগুলি হালকা ওজনের। সুতরাং শাখার জন্য পারফরম্যান্স জরিমানা সর্বনিম্ন এবং উন্নয়ন দলগুলি যতটা সম্ভব শাখা এবং একীভূত করতে উত্সাহিত করা হয়। কিন্তু যখন আপনি একাধিক শাখার সাথে কাজ করছেন, তখন পার্থক্যগুলির তুলনা এবং বিপরীতে সক্ষম হওয়া গুরুত্বপূর্ণ। এই টিউটোরিয়ালে, আমরা কিভাবে আমরা বিভিন্ন শাখা এবং প্রতিশ্রুতি তুলনা করতে পারি তা দেখতে একটি কর্মপ্রবাহের মধ্য দিয়ে যাব।
C00 => C01 => C03 => C06 (মাস্টার)
।
C02 => C04 => C05 (উন্নয়ন)
নিম্নলিখিত পদক্ষেপগুলি নেওয়া হয়েছিল:
- C00: hello_world.py (মাস্টার শাখা) যোগ করা হয়েছে
- - উন্নয়ন শাখা তৈরি করেছে
- C01: দ্বিতীয় হ্যালো (মাস্টার শাখা) যোগ করার জন্য সংশোধিত hello_world.py
- C02: উন্নয়ন শাখা যোগ করার জন্য সংশোধিত hello_world.py বলছে হ্যালো (উন্নয়ন শাখা)
- C03: readme.txt যোগ করা হয়েছে (মাস্টার শাখা)
- C04: উন্নয়ন শাখা যোগ করার জন্য সংশোধিত hello_world.py আবার হ্যালো বলছে (উন্নয়ন শাখা)
- C05: যোগ করা info.txt (উন্নয়ন শাখা)
- C06: দ্বিতীয় লাইন যোগ করতে readme.txt সংশোধন করা হয়েছে (মাস্টার শাখা)
সমস্ত প্রতিশ্রুতির পরে, 'মাস্টার' শাখায় নিম্নলিখিত ফাইল রয়েছে:
hello_world.py
readme.txt
এবং 'উন্নয়ন' শাখায় নিম্নলিখিত ফাইল রয়েছে:
hello_world.py
info.txt
দুটি শাখার প্রধানের তুলনা
আপনি দুটি শাখার প্রধানের তুলনা করতে শাখার নাম ব্যবহার করতে পারেন:
$git diffমাস্টার.. উন্নয়নপার্থক্য --যাওয়াপ্রতি/hello_world.py খ/hello_world.py
সূচক e27f806..3899ed3100644
---প্রতি/hello_world.py
+++ খ/hello_world.py
।-2,7+2,7 ।
def প্রধান():
ছাপা('প্রথম হ্যালো!')
- ছাপা('দ্বিতীয় হ্যালো!')
-
+ মুদ্রণ('উন্নয়ন শাখা হ্যালো বলছে')
+ মুদ্রণ('উন্নয়ন শাখা আবার হ্যালো বলছে')
যদি__ নাম__ =='__ প্রধান__':
প্রধান()
পার্থক্য --যাওয়াপ্রতি/info.txt খ/info.txt
নতুনফাইলমোড100644
সূচক 0000000..0ab52fd
--- /দেব/খালি
+++ খ/info.txt
।-0,0+ঘ ।
+নতুন তথ্য
পার্থক্য --যাওয়াপ্রতি/readme.txt খ/readme.txt
মুছে ফেলা হয়েছেফাইলমোড100644
সূচক e29c296..0000000
---প্রতি/readme.txt
+++/দেব/খালি
।-ঘ,2+0,0 ।
-1Readme.txt এর প্রথম লাইন
-২Readme.txt এর দ্বিতীয় লাইন
ডিফ কমান্ড পুনরাবৃত্তিমূলক পরিবর্তনগুলি দেখছে। এটি নিম্নলিখিত diffs চালানো হয়েছে:
diff –git a/hello_world.py b/hello_world.py
diff –git a/info.txt b/info.txt
diff –git a/readme.txt b/readme.txt
এখানে 'a' মানে 'মাস্টার' শাখা এবং 'b' মানে উন্নয়ন শাখা। 'A' সর্বদা প্রথম প্যারামিটারে এবং 'b' দ্বিতীয় প্যারামিটারে নির্ধারিত হয়। /Dev /null মানে সেই শাখায় ফাইল নেই।
কমিটের মধ্যে তুলনা
আমাদের উদাহরণে, 'মাস্টার' শাখার নিম্নলিখিত প্রতিশ্রুতি রয়েছে:
$git অবস্থাশাখা মাস্টারের উপর
প্রতিশ্রুতিবদ্ধ কিছুই না, কাজ ডিরেক্টরি পরিষ্কার
$git লগ --এক লাইন
caa0ddd C06: দ্বিতীয় লাইন যোগ করতে readme.txt সংশোধন করা হয়েছে(মাস্টার শাখা)
efaba94 C03: readme.txt যোগ করা হয়েছে(মাস্টার শাখা)
ee60eac C01: দ্বিতীয় হ্যালো যোগ করার জন্য hello_world.py সংশোধন করা হয়েছে(মাস্টার শাখা)
22b4bf9 C00: hello_world.py যোগ করা হয়েছে(মাস্টার শাখা)
উন্নয়ন শাখার নিম্নলিখিত প্রতিশ্রুতি রয়েছে:
$git অবস্থাশাখা বিকাশের উপর
প্রতিশ্রুতিবদ্ধ কিছুই না, কাজ ডিরেক্টরি পরিষ্কার
$git লগ --এক লাইন
df3a4ee C05: info.txt যোগ করা হয়েছে(উন্নয়ন শাখা)
0f0abb8 C04: উন্নয়ন শাখা যোগ করার জন্য সংশোধিত hello_world.py আবার হ্যালো বলে(উন্নয়ন শাখা)
3f611a0 C02: উন্নয়ন শাখা যোগ করার জন্য সংশোধিত hello_world.py হ্যালো বলে(উন্নয়ন শাখা)
22b4bf9 C00: hello_world.py যোগ করা হয়েছে(মাস্টার শাখা)
ধরুন আমরা C01 এবং C02 কমিটের জন্য hello_world.py তুলনা করতে চাই। আপনি তুলনা করতে হ্যাশ ব্যবহার করতে পারেন:
$git diffee60eac: hello_world.py 3f611a0: hello_world.pyপার্থক্য --যাওয়াপ্রতি/ee60eac: hello_world.py খ/3f611a0: hello_world.py
সূচক e27f806..72a178d100644
---প্রতি/ee60eac: hello_world.py
+++ খ/3f611a0: hello_world.py
।-2,7+2,7 ।
def প্রধান():
ছাপা('প্রথম হ্যালো!')
- ছাপা('দ্বিতীয় হ্যালো!')
+ মুদ্রণ('উন্নয়ন শাখা হ্যালো বলছে')
যদি__ নাম__ =='__ প্রধান__':
প্রধান()
একই শাখায় কমিটের তুলনা করতে আপনি একই নীতি ব্যবহার করতে পারেন।
ভিজ্যুয়াল মার্জ টুলস
টেক্সট ভিত্তিক তুলনা করা কঠিন হতে পারে। আপনি যদি গিট সেট আপ করেন difftool যেমন একটি ভিজ্যুয়াল মার্জ অ্যাপ্লিকেশনের সাথে ডিফমার্জ অথবা অতুলনীয়ভাবে , আপনি পার্থক্যগুলি আরও ভালভাবে দেখতে সক্ষম হবেন।
আরও অধ্যয়ন:
- গিট ডিফ ডকুমেন্টেশন
- গিট ডিফটুল ডকুমেন্টেশন
- DiffTool দিয়ে DiffMerge সেটআপ
- ডিফটুলের সাথে BeyondCompare সেটআপ
তথ্যসূত্র:
- গিট টিউটোরিয়াল: ডিফ এবং মার্জ টুলস , ইউটিউব
- http://coding4streetcred.com/blog/post/configure-diffmerge-for-your-git-difftool
- http://gitbaby.com/how-to-diff-one-file-to-an-arbitrary-version-in-git.html
- https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
- https://git-scm.com/book/id/v2/Git-Branching-Branches-in-a-Nutshell
- https://git-scm.com/docs/git-diff
- https://git-scm.com/docs/git-difftool
- https://sourcegear.com/diffmerge/
- https://sourcegear.com/diffmerge/webhelp/sec__git__linux.html
- https://stackoverflow.com/questions/9834689/comparing-two-branches-in-git
- https://veerasundar.com/blog/2011/06/git-tutorial-comparing-files-with-diff/
- https://www.scootersoftware.com/features.php
- https://www.scootersoftware.com/support.php?zz=kb_vcs