তুলনা

Git GUI: গ্রাফিক্যাল Git ক্লায়েন্ট: TortoiseGit, GitKraken, VS Code ও অন্যান্য

হালনাগাদ: · Skillaria.Top

Git GUI হলো গ্রাফিক্যাল অ্যাপ, যা কমান্ড লাইনের বদলে উইন্ডোতে ইতিহাস, ব্রাঞ্চ ও পরিবর্তন দেখায়। জনপ্রিয় বিকল্পগুলো হলো VS Code ও JetBrains IDE-তে বিল্ট-ইন Git, সাধারণ কাজের জন্য GitHub Desktop, Windows-এর জন্য TortoiseGit ও Git Extensions, এবং ব্রাঞ্চ নিয়ে স্পষ্ট কাজের জন্য GitKraken ও Sourcetree; সবগুলো সাধারণ Git-এর ওপর চলে।

Git GUI কী, এবং কি দরকার

Git GUI হলো Git নিয়ে কাজের গ্রাফিক্যাল অ্যাপ: কমান্ডের বদলে আপনি পরিবর্তিত ফাইলের তালিকা, কমিটের গাছ এবং "Commit", "Push", "Merge" বোতাম দেখেন। ভেতরে প্রায় প্রতিটি git ক্লায়েন্ট কমান্ড লাইনের মতোই কাজ করে, এবং অনেকে সরাসরি সিস্টেমে ইনস্টল করা git চালায়। তাই GUI আলাদা কোনো ভার্সন কন্ট্রোল সিস্টেম নয়, একই রিপোজিটরি পরিচালনার অন্য উপায়।

গ্রাফিক্যাল ক্লায়েন্ট তিনটি কাজে বিশেষভাবে ভালো: ইতিহাস ও ব্রাঞ্চ গ্রাফে দেখা, অংশবিশেষ কমিট করা (মাউসে নির্দিষ্ট লাইন বেছে নেওয়া git add -p-এর চেয়ে সহজ), এবং তিন-প্যানেলের এডিটরে কনফ্লিক্ট মেটানো। তবে অটোমেশন, SSH-এ সার্ভারে কাজ এবং আসলে কী ঘটছে তা বোঝার জন্য কমান্ড লাইন অপরিহার্য।

অনেক অভিজ্ঞ ডেভেলপারের কৌশল: কমান্ড লাইন জানা, আর যেখানে GUI সময় বাঁচায় সেখানে তা ব্যবহার করা। নতুন হলে আগে মৌলিক কমান্ড শিখুন: তাহলে যেকোনো অ্যাপের বোতাম বোধগম্য হবে, রহস্যময় মনে হবে না।

বিল্ট-ইন git gui ও gitk

অনেকেই জানেন না যে Git-এর সঙ্গেই একটি গ্রাফিক্যাল প্রোগ্রাম আসে। git gui কমান্ড একটি সরল Tcl/Tk উইন্ডো খোলে, যেখানে কমিট প্রস্তুত করা যায়: diff দেখা, ফাইল ও আলাদা অংশ যোগ করা, কমিট তৈরি এবং push। gitk ইতিহাস গ্রাফে দেখায়।

git gui
gitk --all

Git for Windows-এর সঙ্গে দুটিই Git Bash-এর সঙ্গে ইনস্টল হয়। Linux-এ কখনো আলাদা প্যাকেজ লাগে (যেমন Debian ও Ubuntu-তে git-gui ও gitk)। ইন্টারফেস পুরনো ধাঁচের, তবে কিছু ডাউনলোড লাগে না, এবং Git যেখানে আছে সেখানে চলে।

VS Code-এ Git

Visual Studio Code-এ কোড লিখলে আলাদা প্রোগ্রামের হয়তো দরকার নেই। Source Control প্যানেল (Ctrl+Shift+G) আলাদা ফাইল ও লাইন স্টেজ করতে পারে, কমিট, push ও pull করতে পারে, ব্রাঞ্চ বদলাতে ও বানাতে পারে, এবং সম্পাদনার মার্জিনে রঙিন চিহ্ন দিয়ে পরিবর্তন দেখায়। Merge-কনফ্লিক্ট খোলে "Accept Current", "Accept Incoming", "Accept Both" বোতামসহ, আর নতুন সংস্করণে আছে তিন-প্যানেলের merge editor।

VS Code সিস্টেমে ইনস্টল করা Git ব্যবহার করে, তাই আগে Git নিজে ইনস্টল করুন, নইলে প্যানেল সতর্কবার্তা দেখাবে। VS Code Git-এর সম্প্রসারণ আরও শক্ত করে: GitLens প্রতিটি লাইনের লেখক (blame), ফাইলের বিস্তারিত ইতিহাস ও ব্রাঞ্চের তুলনা যোগ করে, আর Git Graph কমিটের গ্রাফ আঁকে। GitLens-এর কিছু সুবিধা সাবস্ক্রিপশনের অধীনে, তাই বিনামূল্যের অংশে কী আছে দেখে নিন।

একইভাবে JetBrains IDE (IntelliJ IDEA, PyCharm, WebStorm ও অন্যান্য) ভেতরে একটি উন্নত Git ক্লায়েন্ট রাখে: ব্রাঞ্চের গ্রাফ, ইন্টার‌্যাকটিভ rebase, shelve এবং সুবিধাজনক কনফ্লিক্ট মেটানো। অনেক ডেভেলপারের কাছে এটিই মূল git ক্লায়েন্ট।

TortoiseGit

TortoiseGit একটি বিনামূল্যের, ওপেন সোর্স ক্লায়েন্ট, শুধু Windows-এর জন্য। এটি আলাদা অ্যাপ হিসেবে খোলে না, Explorer-এ যুক্ত হয়: ফোল্ডারে ডান-ক্লিক করলে প্রসঙ্গ মেনুতে Commit, Pull, Push, Show log, Diff আসে। ফাইলের আইকনে স্ট্যাটাসের চিহ্ন দেখায়: বদলেছে, যোগ হয়েছে, কনফ্লিক্টে আছে।

Tortoise git বিশেষভাবে উপযোগী তাদের জন্য, যারা SVN থেকে এসেছেন এবং TortoiseSVN-এ অভ্যস্ত, এবং অ-প্রোগ্রামারদের জন্য, যেমন ডিজাইনার, টেকনিক্যাল রাইটার বা টেস্টার, যাঁদের শুধু ফাইল টানা ও পাঠানো দরকার। কাজের জন্য Git for Windows ইনস্টল থাকা লাগে। অসুবিধা: এটি ক্রস-প্ল্যাটফর্ম নয়, এবং ইতিহাসের গ্রাফ বিশেষায়িত ক্লায়েন্টের চেয়ে কম স্পষ্ট।

Git Extensions

Git Extensions Windows-এর আরেকটি বিনামূল্যের ওপেন সোর্স ক্লায়েন্ট। TortoiseGit-এর থেকে ভিন্ন, এটি পূর্ণাঙ্গ উইন্ডো: কমিটের গ্রাফ, diff-এর প্যানেল ও ব্রাঞ্চের তালিকা, সঙ্গে Explorer ও Visual Studio-এর সমন্বয়। অনেক কাজ Git-এর কমান্ডের কাছাকাছি করে দেখায়, আছে বিল্ট-ইন কনসোল এবং সাবমডিউলের সমর্থন।

Git Extensions বেছে নেওয়া হয়, যখন Windows-এ একটি শক্তিশালী বিনামূল্যের ক্লায়েন্ট দরকার, যার পূর্ণাঙ্গ গ্রাফ আছে, এবং macOS-এর প্রয়োজন নেই। ইন্টারফেস ভারী, তাই নতুনদের মানিয়ে নিতে সময় লাগে।

GitHub Desktop

GitHub Desktop Windows ও macOS-এর জন্য বিনামূল্যের, ওপেন সোর্স অ্যাপ। এর লক্ষ্য সরলতা: পরিবর্তনের তালিকা, কমিট বার্তার ঘর, সিঙ্ক বোতাম, ব্রাঞ্চ বদলানোর সুইচ। GitHub-এর সঙ্গে গভীরভাবে যুক্ত: নিজের রিপোজিটরি এক ক্লিকে ক্লোন, pull request তৈরি, অ্যাকাউন্ট দিয়ে লগইন — তবে অন্য যেকোনো রিমোটের সঙ্গেও কাজ করে।

GitHub-এর Git desktop নতুনদের জন্য ভালো প্রথম ক্লায়েন্ট এবং সরল প্রকল্পের জন্য ভালো পছন্দ। জটিল কাজ, যেমন ইন্টার‌্যাকটিভ rebase, reflog-এর সঙ্গে কাজ বা মেশানোর সূক্ষ্ম নিয়ন্ত্রণ, এতে সীমিত বা নেই, সেগুলোর জন্য টার্মিনাল খুলতে হবে।

GitKraken

GitKraken একটি ক্রস-প্ল্যাটফর্ম বাণিজ্যিক ক্লায়েন্ট (Windows, macOS, Linux), যার কমিট গ্রাফ সবচেয়ে স্পষ্টগুলোর একটি। একটি ব্রাঞ্চ টেনে অন্যটিতে ফেললে merge বা rebase হয়, আছে বিল্ট-ইন কনফ্লিক্ট এডিটর, Git Flow-এর সমর্থন, জনপ্রিয় Git হোস্টিং ও টাস্ক ট্র্যাকারের সংযোগ, এবং শেষ অপারেশন ফেরানোর Undo বোতাম।

একটি বিনামূল্যের সংস্করণ সীমাবদ্ধতা সহ আছে এবং পেইড সাবস্ক্রিপশন আছে; প্রতিটি পরিকল্পনায় ফিচার বদলায়, তাই যেমন ব্যক্তিগত রিপোজিটরির শর্ত বাছার আগে অফিসিয়াল সাইটে যাচাই করুন। জটিল ইতিহাসের ভিজ্যুয়ালাইজেশনের জন্য GitKraken-কে পছন্দ করা হয়; অসুবিধা: বেশি সম্পদ লাগে, এবং বাণিজ্যিক কাজে পেইড মডেল।

Sourcetree, Fork, Sublime Merge ও টার্মিনাল ক্লায়েন্ট

Sourcetree Atlassian-এর বিনামূল্যের ক্লায়েন্ট, Windows ও macOS-এর জন্য, ইতিহাসের গ্রাফ, Git Flow, ইন্টার‌্যাকটিভ rebase ও stash সহ। Bitbucket-এর সঙ্গে ভালো মেলে। ইনস্টলের জন্য Atlassian অ্যাকাউন্ট লাগতে পারে।

Fork দ্রুত ও পরিচ্ছন্ন বাণিজ্যিক ক্লায়েন্ট Windows ও macOS-এর জন্য, সুবিধাজনক ইন্টার‌্যাকটিভ rebase ও কনফ্লিক্ট মেটানো সহ। ব্যবহারের শর্ত ডেভেলপারের সাইটে দেখুন।

Sublime Merge Sublime Text-এর নির্মাতাদের তৈরি, Windows, macOS ও Linux-এ অত্যন্ত দ্রুত ক্লায়েন্ট; যুক্তিতে কমান্ড লাইনের কাছাকাছি, তাই বোতামটি ঠিক কোন Git কমান্ড চালায় তা সহজে দেখা যায়। বাণিজ্যিক লাইসেন্সে বিক্রি হয়, মূল্যায়নের জন্য বিনামূল্যে ব্যবহারের সুযোগ আছে।

lazygit ও tig টার্মিনালের টেক্সট-ইন্টারফেস ক্লায়েন্ট। lazygit কী-বোর্ড দিয়ে লাইন স্টেজ, rebase ও কনফ্লিক্ট মেটাতে দেয়, tig ইতিহাস দেখতে সুবিধাজনক। যাঁরা টার্মিনালে থাকেন এবং SSH-এ সার্ভারে কাজ করেন, তাঁদের জন্য এগুলো উপযুক্ত।

Git ক্লায়েন্টের তুলনামূলক তালিকা

ক্লায়েন্টপ্ল্যাটফর্মবিতরণের ধরনশক্তিশালী দিককাদের জন্য
git gui + gitkWindows, macOS, Linuxবিনামূল্যে, Git-এর সঙ্গে আসেকিছু ইনস্টল করতে হয় নাকমিট ও ইতিহাসের দ্রুত দৃষ্টি
VS CodeWindows, macOS, Linuxবিনামূল্যেএডিটরের ভেতরেই GitVS Code-এ কাজ করা ডেভেলপারদের
JetBrains IDEWindows, macOS, LinuxIDE-র ওপর নির্ভর করেশক্তিশালী rebase ও কনফ্লিক্ট টুলJetBrains IDE ব্যবহারকারীদের
TortoiseGitWindowsবিনামূল্যে, ওপেন সোর্সExplorer-এর সঙ্গে সংযোগSVN-এর অভিজ্ঞ ব্যবহারকারী, অ-প্রোগ্রামার
Git ExtensionsWindowsবিনামূল্যে, ওপেন সোর্সপূর্ণাঙ্গ গ্রাফ ও অনেক ফিচারWindows-এর অভিজ্ঞ ব্যবহারকারীদের
GitHub DesktopWindows, macOSবিনামূল্যে, ওপেন সোর্সসরলতা, GitHub-এর সংযোগনতুন ও সরল প্রকল্পের জন্য
GitKrakenWindows, macOS, Linuxবাণিজ্যিক, বিনামূল্যের সংস্করণ আছেস্পষ্ট গ্রাফ, drag-and-dropজটিল ইতিহাসের দলের জন্য
SourcetreeWindows, macOSবিনামূল্যেGit Flow, Bitbucket-এর সংযোগAtlassian পরিবেশের ব্যবহারকারীদের
Sublime MergeWindows, macOS, Linuxবাণিজ্যিকগতি, কমান্ডের স্বচ্ছতাযাঁরা গতিকে গুরুত্ব দেন
lazygitWindows, macOS, Linuxবিনামূল্যে, ওপেন সোর্সটার্মিনালে কাজটার্মিনাল ও SSH-প্রেমীদের

কোন ক্লায়েন্ট বাছবেন

  • আপনি ইতিমধ্যে VS Code বা JetBrains IDE-তে কাজ করেন — বিল্ট-ইন Git দিয়ে শুরু করুন। আলাদা অ্যাপ লাগে শুধু কিছু না পেলে।
  • সর্বোচ্চ সরলতা দরকার — GitHub Desktop।
  • Windows ও Explorer-এর অভ্যাস — TortoiseGit; পূর্ণাঙ্গ গ্রাফ লাগলে Git Extensions।
  • জটিল ইতিহাস, অনেক ব্রাঞ্চ, বিভিন্ন OS-এ দল — GitKraken, Sublime Merge বা Fork; বাণিজ্যিক ব্যবহারের লাইসেন্স শর্ত যাচাই করুন।
  • আপনি টার্মিনালে থাকেন — lazygit বা tig।

একাধিক ক্লায়েন্ট একসঙ্গে ইনস্টল করা যায়: সবাই একই রিপোজিটরিতে কাজ করে এবং একে অপরের সঙ্গে সংঘর্ষ করে না, কারণ সব তথ্য .git ফোল্ডারে থাকে। দুই-তিনটি বিকল্প একটি বাস্তব প্রকল্পে চেষ্টা করুন, এবং যেটিতে প্রয়োজনীয় জিনিস দ্রুত খুঁজে পান, সেটি রাখুন।

গ্রাফিক্যাল ক্লায়েন্টের ফাঁদ

  • ভিন্ন Git সংস্করণ। কিছু অ্যাপের সঙ্গে নিজস্ব Git আসে, এবং তার সংস্করণ সিস্টেমের থেকে আলাদা হতে পারে। GUI ও টার্মিনালের আচরণ আলাদা হলে ক্লায়েন্টের সেটিংসে দেখুন কোন Git ব্যবহার হচ্ছে।
  • লুকানো অপারেশন। "Sync" বোতাম মানে pull (merge বা rebase) এবং তারপর push হতে পারে। গুরুত্বপূর্ণ ব্রাঞ্চে চাপার আগে জেনে নিন সে কী করে।
  • এক ক্লিকে force push। GUI-তে রিমোট ব্রাঞ্চের ইতিহাস সহজে লিখে ফেলা যায়। যাচাইসহ বিকল্প নিন (git push --force-with-lease-এর মতো), এবং সার্ভারে মূল ব্রাঞ্চ সুরক্ষিত রাখুন।
  • নাম ও ইমেইল। ক্লায়েন্ট এগুলো Git-এর কনফিগ থেকে নেয়। git config --global user.name ও user.email যাচাই করুন, নইলে GUI-র কমিট ভুল লেখকের নামে যাবে।
  • অনুমোদন। GUI প্রায়ই টোকেন সিস্টেমের Git থেকে আলাদা রাখে। টার্মিনালে push হলে কিন্তু অ্যাপে না হলে (বা উল্টো), সমস্যা প্রায় সবসময় ক্রেডেনশিয়ালে।

GUI ও কমান্ড লাইন কীভাবে মেলাবেন

সবচেয়ে কাজের দক্ষতা: ক্লায়েন্ট যা করেছে তা টার্মিনালে যাচাই করা। অস্পষ্ট অপারেশনের পর git status ও git log --oneline --graph --all -n 20 চালান: ইন্টারফেসের ব্যাখ্যা ছাড়াই ব্রাঞ্চের আসল অবস্থা দেখবেন। কিছু ভুল হলে git reflog দেখায় বোতাম চাপার আগে HEAD কোথায় ছিল, এবং git reset বা git switch দিয়ে ফেরা যায়।

অনেক ক্লায়েন্ট সম্পাদিত Git কমান্ডের লগ দেখায়। সেটি চালু করুন: এটি সুবিধাজনক ইন্টারফেস না ছেড়েই কমান্ড শেখার সেরা উপায়।

সারসংক্ষেপ

Git GUI ইতিহাস দেখা, অংশবিশেষ কমিট ও কনফ্লিক্ট মেটানো সহজ করে, কিন্তু কমান্ড বোঝার বিকল্প নয়। বেশিরভাগ ডেভেলপারের জন্য IDE-র বিল্ট-ইন Git যথেষ্ট; নতুনদের জন্য GitHub Desktop, Windows-ব্যবহারকারীদের জন্য TortoiseGit বা Git Extensions, আর জটিল ইতিহাসের জন্য GitKraken, Sourcetree বা Sublime Merge। Git ইনস্টল, কনফিগ এবং টার্মিনালে সহজ কাজ আমরা Git কোর্সে বাস্তব অনুশীলনে শেখাই।

সাধারণ প্রশ্ন

শুধু গ্রাফিক্যাল ক্লায়েন্ট দিয়ে কি Git-এ কাজ করা যায়?

দৈনন্দিন কাজে হ্যাঁ, কিন্তু একদিন এমন পরিস্থিতি আসবে যা একটি কমান্ডে সহজে মেটে, যেমন reflog দিয়ে পুনরুদ্ধার। মৌলিক কমান্ড যেকোনো ক্ষেত্রেই জানা ভালো।

GUI ক্লায়েন্ট থাকলেও কি আলাদা Git ইনস্টল করতে হয়?

VS Code, TortoiseGit ও Git Extensions-এর জন্য ইনস্টল করা Git লাগে। কিছু অ্যাপ, যেমন GitHub Desktop, নিজের Git নিয়ে আসে, তবু টার্মিনালের জন্য সিস্টেমের Git কাজে লাগে।

Linux-এর জন্য কোন Git ক্লায়েন্ট আছে?

Linux-এ চলে বিল্ট-ইন git gui ও gitk, VS Code, JetBrains IDE, GitKraken, Sublime Merge, এবং টার্মিনালের lazygit ও tig।

একটি রিপোজিটরি একাধিক ক্লায়েন্টে খোলা কি নিরাপদ?

হ্যাঁ, সবাই একই .git ফোল্ডারে কাজ করে। শুধু একই সময়ে অপারেশন চালাবেন না, নইলে একটি ক্লায়েন্ট লকড index.lock ত্রুটি পাবে।

ভিডিওতে বিষয়টি শিখুন

“শূন্য থেকে আত্মবিশ্বাসী ডেভেলপার পর্যন্ত গিট” কোর্সে বিষয়টি অনুশীলনসহ বিস্তারিত শেখানো হয়েছে।

কোর্সে যান