গাইড

GitHub Desktop: ডাউনলোড, ইনস্টল ও কমান্ড লাইন ছাড়া Git ব্যবহারের নিয়ম

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

GitHub Desktop (গিটহাব ডেস্কটপ) GitHub-এর তৈরি বিনামূল্যের অ্যাপ, যা Windows ও macOS-এ চলে এবং commit, push, pull, branch, merge ও conflict সমাধানের মতো মূল Git কাজ বোতাম দিয়ে করে। desktop.github.com থেকে ডাউনলোড করুন, ইনস্টলের পর GitHub অ্যাকাউন্টে লগইন করুন এবং repository clone করুন।

GitHub Desktop কী

GitHub Desktop একটি বিনামূল্যের ও ওপেন-সোর্স অ্যাপ, যা GitHub Windows ও macOS-এর জন্য প্রকাশ করেছে। এই অ্যাপ উইন্ডোতে পরিবর্তিত ফাইল, commit-এর ইতিহাস ও branch দেখায় এবং বোতাম চাপলেই Git-এর মূল কমান্ড চালায়। অ্যাপের ভেতরেই Git-এর একটি কপি থাকে, তাই এর জন্য আলাদাভাবে Git ইনস্টল করার দরকার হয় না।

"git desktop কী" প্রশ্নের সংক্ষিপ্ত উত্তর: এটি GitHub-এর জন্য তৈরি Git-এর একটি গ্রাফিক্যাল ক্লায়েন্ট। এক ক্লিকে আপনার repository clone করে, pull request তৈরি করে এবং checks-এর অবস্থা দেখায়। তবে HTTPS-এর মাধ্যমে যুক্ত অন্য যেকোনো remote repository, যেমন GitLab বা নিজের সার্ভারের সঙ্গেও এটি কাজ করে।

নতুন শিক্ষার্থী, ডিজাইনার, টেকনিক্যাল রাইটার এবং যাঁরা "পরিবর্তন করুন, commit করুন, পাঠান" এই সহজ চক্র চান, তাঁদের জন্য এটি ভালো। অভিজ্ঞ ডেভেলপাররা diff সহজে দেখতে এবং নির্দিষ্ট লাইন বেছে commit করতে এটি ব্যবহার করেন, আর জটিল কাজের জন্য terminal।

GitHub Desktop কীভাবে ডাউনলোড করবেন

অফিসিয়াল ডাউনলোড ঠিকানা desktop.github.com। ওয়েবসাইট আপনার সিস্টেম চিনে Windows-এর জন্য installer এবং macOS-এর জন্য archive দেখায়। প্রোগ্রাম শুধু সেখান থেকে বা GitHub-এ desktop/desktop repository-র releases পেজ থেকে নামান। "github desktop free download" লিখে পাওয়া তৃতীয় পক্ষের সাইটের ফাইলে যেকোনো কিছু থাকতে পারে।

Linux-এর জন্য কোনো অফিসিয়াল সংস্করণ নেই। কমিউনিটির তৈরি একটি fork (repository shiftkey/desktop) আছে, যাতে .deb, .rpm ও AppImage প্যাকেজ মেলে, তবে এটি অফিসিয়াল build নয়। Linux-এ terminal বা আপনার editor-এর ভেতরের Git client বেশি সুবিধাজনক।

Windows-এ ইনস্টল

  1. ডাউনলোড করা GitHubDesktopSetup ফাইলটি চালান।
  2. Installer কিছু জিজ্ঞেস করে না: অ্যাপ বর্তমান ব্যবহারকারীর প্রোফাইলে ইনস্টল হয় এবং সঙ্গে সঙ্গে খুলে যায়।
  3. Administrator অধিকার লাগে না, আপডেটও অ্যাপ নিজে নামিয়ে নেয়।

প্রতিষ্ঠানের কম্পিউটারের জন্য আলাদা MSI installer আছে, সেটি GitHub Desktop-এর ডকুমেন্টেশনে খুঁজুন।

macOS-এ ইনস্টল

  1. ডাউনলোড করা zip ফাইলটি খুলুন।
  2. GitHub Desktop-কে Applications ফোল্ডারে টেনে রাখুন।
  3. অ্যাপ চালান এবং ইন্টারনেট থেকে আসা প্রোগ্রাম খোলার অনুমতি দিন।

Intel ও Apple Silicon দুটোর জন্যই build আছে; ওয়েবসাইট সাধারণত সঠিকটি নিজেই দেখায়। Homebrew দিয়েও ইনস্টল করা যায়:

brew install --cask github

অ্যাকাউন্টে লগইন ও প্রাথমিক সেটিংস

প্রথমবার চালালে অ্যাপ GitHub.com-এ লগইন করতে বলে। লগইন বোতাম চাপুন, browser খুলবে, সেখানে অ্যাপকে অ্যাকাউন্টে প্রবেশের অনুমতি দিন। পাসওয়ার্ড অ্যাপে লিখতে হয় না, এবং two-factor authentication browser-এ স্বাভাবিকভাবেই হয়। GitHub Enterprise সার্ভারের জন্য আলাদা লগইন বিকল্প আছে।

এরপর অ্যাপ Git-এর সেটিংস চায়: নাম ও e-mail, যা প্রতিটি commit-এ যুক্ত হবে। এগুলো সেই user.name ও user.email, যা git config --global দিয়ে সেট হয়; Git আগে থেকে সেট থাকলে এগুলো নিজে থেকেই বসে যায়। Commit যাতে আপনার GitHub প্রোফাইলের সঙ্গে যুক্ত হয়, তার জন্য অ্যাকাউন্টে যুক্ত e-mail লিখুন, অথবা এই ব্যক্তিগত ঠিকানা ব্যবহার করুন: ID+login@users.noreply.github.com।

এই সেটিংস পরে বদলানো যায়: Windows-এ File → Options, macOS-এ GitHub Desktop → Settings-এ। সেখানেই বাইরের editor (যেমন VS Code), terminal এবং থিম বেছে নেওয়া যায়।

Repository clone করা

Clone মানে remote repository-র পুরো ইতিহাসসহ একটি কপি বানানো। GitHub Desktop-এ এর জন্য File → Clone repository আছে। উইন্ডোতে তিনটি ট্যাব: GitHub.com-এ আপনার repositories, GitHub Enterprise-এর repositories, এবং URL ট্যাব, যেখানে যেকোনো ঠিকানা বসানো যায়, GitLab-এরও।

  1. তালিকা থেকে repository বেছে নিন, অথবা URL বসান।
  2. স্থানীয় ফোল্ডার (Local path) ঠিক করুন।
  3. Clone চাপুন এবং ডাউনলোড শেষ হওয়া পর্যন্ত অপেক্ষা করুন।

একই কাজ git clone কমান্ডও করে। GitHub-এ repository পেজের Code বোতামের মেনুতে Open with GitHub Desktop আছে, যা অ্যাপটিকে আগে থেকে ভরা ঠিকানাসহ খুলে দেয়। যদি এমন কারও repository clone করেন যাতে আপনার লেখার অধিকার নেই, তবে পরিবর্তন পাঠানোর সময় অ্যাপ fork বানাতে বলবে।

বিদ্যমান Git প্রজেক্টের ফোল্ডার File → Add local repository দিয়ে যুক্ত হয়, আর নতুন repository File → New repository দিয়ে বানানো হয়: সেখানে .gitignore টেমপ্লেট, লাইসেন্স বেছে নেওয়া এবং README বানানোও একসঙ্গে হতে পারে।

GitHub Desktop-এ commit কীভাবে করবেন

Changes ট্যাবের বাঁ দিকে পরিবর্তিত সব ফাইলের তালিকা, আর ডান দিকে বেছে নেওয়া ফাইলের diff: মুছে ফেলা লাইন লাল এবং যোগ করা লাইন সবুজ। ফাইলের পাশের চেকবক্স ঠিক করে সেটি commit-এ যাবে কি না। এটি staging area ও git add-এর কাজ।

  1. যে ফাইলগুলো commit করতে চান না, সেগুলোর চেকবক্স তুলে দিন।
  2. প্রয়োজনে diff-এর নির্দিষ্ট লাইনে ক্লিক করে সেগুলো বাদ দিন: এটি আংশিক commit, যেমন git add -p।
  3. নিচে Summary-তে ছোট বিবরণ লিখুন এবং চাইলে Description-এ বিস্তারিত।
  4. Commit to <branch-এর নাম> বোতাম চাপুন।

Commit শুধু আপনার কম্পিউটারে তৈরি হয়, সার্ভারে এখনও যায় না। GitHub Desktop-এ ছোট ও অর্থবহ commit করা সহজ, কারণ প্রতিটি commit-এ কী যাচ্ছে তা স্পষ্ট দেখা যায়। Commit-এ ভুল থাকলে সেটির ঠিক পরে নিচে Undo বোতাম আসে, যা শেষ commit বাতিল করে পরিবর্তনগুলো working folder-এ ফিরিয়ে আনে, যতক্ষণ না সেটি সার্ভারে পাঠানো হয়েছে।

যে ফাইল repository-তে যাওয়া উচিত নয়, তা ফাইলের context মেনু থেকে ignore করা যায়: এতে .gitignore-এ একটি লাইন যোগ হয়। Commit না করা পরিবর্তন বাতিল করতে একই মেনুতে Discard changes আছে। পরিবর্তনগুলো সিস্টেমের ট্র্যাশে যায়, তবু এটিকে ফেরানো যায় না এমন কাজ ধরে নিন।

Push, pull ও fetch: সার্ভারের সঙ্গে সিঙ্ক

উপরের প্রধান বারের বোতামের নাম অবস্থা অনুযায়ী বদলায়। এখানেই GitHub Desktop-এ push ও pull এক ক্লিকে হয়।

বোতামের লেখাকী ঘটেGit কমান্ড
Publish repositoryস্থানীয় repository এখনও GitHub-এ নেই: সেটি বানিয়ে পাঠানোremote তৈরি + git push -u
Publish branchbranch শুধু স্থানীয়ভাবে আছেgit push -u origin branch
Fetch originসার্ভারে নতুন commit আছে কি না দেখাgit fetch
Pull originসার্ভারে নতুন commit আছে, সেগুলো আনাgit pull
Push originআপনার স্থানীয় commit আছে, সেগুলো পাঠানোgit push

বোতামের পাশে উপর ও নিচের তীরসহ commit-এর সংখ্যা দেখা যায়: কতগুলো পাঠাতে হবে ও কতগুলো আনতে হবে। অ্যাপ পেছনে নিয়মিত fetch করে, তাই সহকর্মীরা কিছু পাঠালে Pull বোতাম নিজে থেকেই দেখা দেয়।

যদি আপনার branch ও সার্ভারের branch আলাদা হয়ে যায় এবং দুই পক্ষেই নতুন commit থাকে, তবে push বাতিল হবে। আগে Pull origin করুন: Git merge করবে, আর পরিবর্তনগুলো একে অপরের সঙ্গে মিললে conflict তৈরি হবে। Force push (ইতিহাস বদলে পাঠানো) অ্যাপ শুধু সেইসব কাজের পর প্রস্তাব করে, যেগুলো আগে পাঠানো commit বদলায়, যেমন rebase।

Branch তৈরি, বদল ও checkout

Branch উপরের Current branch ড্রপডাউন থেকে সামলানো হয়। সেখানে স্থানীয় ও remote branch-এর তালিকা, খোঁজার ঘর এবং New branch বোতাম আছে। তালিকা থেকে কোনো branch বেছে নেওয়াই GitHub Desktop-এর checkout: অ্যাপ working folder-কে সেই branch-এ নিয়ে যায়। Remote branch, যা এখনও স্থানীয় নেই, সেটি বেছে নিলে নিজে থেকেই tracking সহ স্থানীয় branch তৈরি হয়।

নতুন branch বর্তমান branch বা default branch থেকে তৈরি হয়; একাধিক বিকল্প থাকলে অ্যাপ জিজ্ঞেস করে। তৈরির পর সেটি শুধু আপনার কাছে থাকে, তাই উপরের বোতাম হয়ে যায় Publish branch। Branch-এর নাম বদলানো ও মুছে ফেলা হয় Branch মেনু বা তালিকার branch-এর context মেনু থেকে; মোছার সময় বেছে নিতে পারেন সার্ভার থেকেও মুছবে কি না।

কাজ শেষ হলে Branch মেনুতে Create pull request আছে। এটি browser-এ GitHub-এর pull request তৈরির পেজ খোলে। Review ও merge প্রক্রিয়া ওয়েবসাইটেই হয়।

GitHub Desktop-এ merge ও rebase

অন্য branch বর্তমান branch-এ মেশাতে Current branch মেনুর Choose a branch to merge into <branch> বেছে নিন (একই বিকল্প Branch মেনুতেও আছে)। অ্যাপ আগে থেকে দেখায় কতগুলো commit মিশবে এবং conflict হবে কি না। এটিই GitHub Desktop-এর merge, অর্থাৎ সাধারণ git merge।

একই মেনুতে Squash and merge আছে, যা branch-এর সব commit একটিতে গুটিয়ে দেয়, এবং Rebase current branch আছে, যা আপনার commit-গুলো বেছে নেওয়া branch-এর ওপরে সরিয়ে নেয়। Rebase-এর পর যদি branch আগেই সার্ভারে পাঠানো থাকে, তবে সার্ভার ও আপনার ইতিহাসে পার্থক্য হয় এবং Push বোতাম হয়ে যায় Force push origin। এটি শুধু নিজের branch-এ করুন, যেখানে আপনি ছাড়া আর কেউ কাজ করে না।

History ট্যাবে commit টেনে অন্য branch-এ ছেড়ে দেওয়া যায় (এটি cherry-pick), একটিকে অন্যটির ওপর ছেড়ে squash করা যায়, বা তাদের ক্রম বদলানো যায়। সব বিকল্পসহ interactive rebase এখানে নেই; তার জন্য terminal-এ git rebase -i লাগবে।

Merge conflict

দুই branch-এ একই লাইন বদলালে merge, pull বা rebase-এর সময় conflict-এর ফাইলের তালিকা সহ একটি উইন্ডো খোলে। প্রতিটি ফাইল বাইরের editor-এ খুলতে পারেন, অথবা পুরো ফাইলের একটি সংস্করণ বেছে নিতে পারেন: আপনারটি বা আসছেটি।

Editor-এ conflict এভাবে দেখায়:

<<<<<<< HEAD
const limit = 20;
=======
const limit = 50;
>>>>>>> feature/pagination

সঠিক সংস্করণ রাখুন, marker মুছুন এবং ফাইল সেভ করুন। সব ফাইল থেকে marker চলে গেলে GitHub Desktop সেগুলোকে resolved ধরে নেয় এবং merge চালিয়ে যাওয়ার বোতাম চালু করে, যা একটি merge commit তৈরি করে। কিছু ভুল হলে একই উইন্ডোর Abort বোতাম দিয়ে merge বাতিল করা যায়: এটি git merge --abort-এর মতো।

GitHub Desktop-এ Git stash

মূল উইন্ডোতে আলাদা "stash" বোতাম নেই, তবে সুবিধাটি আছে। Commit না করা পরিবর্তন নিয়ে অন্য branch-এ গেলে অ্যাপ জিজ্ঞেস করে সেই পরিবর্তনের কী হবে: বর্তমান branch-এ রেখে যাবেন, না নতুন branch-এ নিয়ে যাবেন। "রেখে যান" বেছে নিলে পরিবর্তনগুলো stash-এ লুকিয়ে যায়, এটিই GitHub Desktop-এ git stash-এর পদ্ধতি।

হাতে লুকাতে চাইলে পরিবর্তনের তালিকার context মেনু থেকে Stash all changes বেছে নিন। Branch-এ ফিরে এলে Changes ট্যাবের নিচে Stashed changes লাইনটি দেখা যায়: সেখানে লুকানো ফাইল দেখতে পারেন এবং Restore দিয়ে ফেরাতে বা মুছতে পারেন।

সীমা হলো, GitHub Desktop প্রতি branch-এর জন্য মাত্র একটি stash রাখে। একাধিক stash entry দরকার হলে terminal-এ নির্দিষ্ট entry-র জন্য git stash pop বা git stash apply stash@{1} ব্যবহার করুন। অ্যাপ Repository মেনু থেকে terminal-কে সঠিক ফোল্ডারে খুলতে পারে।

GitHub Desktop-এ Git LFS

Git LFS বড় binary ফাইল (ভিডিও, PSD, 3D মডেল) আলাদা সার্ভারে রাখে, আর repository-তে থাকে শুধু ছোট pointer। GitHub Desktop LFS সমর্থন করে: LFS ব্যবহারকারী repository clone বা খোলার সময় অ্যাপ LFS চালু করার প্রস্তাব দেয়, তারপর বড় ফাইল নিজে থেকেই ডাউনলোড ও আপলোড হয়।

তবে কোন ফাইল LFS দিয়ে track হবে, তা ইন্টারফেস থেকে ঠিক করা যায় না। এটি একবার terminal-এ করতে হয়; তারপর GitHub Desktop-এ git lfs আলাদা কিছু না করেই কাজ করে:

git lfs install
git lfs track "*.psd"
git add .gitattributes
git commit -m "Track PSD files with Git LFS"

সীমার কথা মনে রাখুন: বিনামূল্যের GitHub অ্যাকাউন্টে LFS-এর storage ও traffic-এর সীমা আছে। সর্বশেষ সীমা অ্যাকাউন্টের billing সেটিংসে দেখুন।

Reset, revert ও ইতিহাস

History ট্যাবে বর্তমান branch-এর commit এবং প্রতিটি commit-এর পরিবর্তন দেখা যায়। কোনো commit-এর context মেনুতে এই বিকল্পগুলো আছে:

  • Revert changes in commit — বেছে নেওয়া commit বাতিল করে একটি নতুন commit তৈরি করে। আগে পাঠানো commit-এর জন্যও নিরাপদ।
  • Create branch from commit ও Create tag — ইতিহাসের যেকোনো বিন্দু থেকে branch বা tag।
  • Amend commit — শেষ commit-এর জন্য: বার্তা ঠিক করা বা ফাইল যোগ করা।
  • Reset to commit — নতুন সংস্করণে: branch-কে বেছে নেওয়া commit-এ নিয়ে যায় এবং পরিবর্তন working folder-এ রাখে, যেমন git reset --mixed।

ইন্টারফেসে git reset --hard-এর মতো বিকল্প নেই; এটি ইচ্ছাকৃত, যাতে নতুন ব্যবহারকারী তাঁর কাজ না হারান। দরকার হলে terminal ব্যবহার করুন, আর হারানো commit খুঁজতে git reflog।

কখন command line ভালো

GitHub Desktop রোজকার কাজের চক্র ভালোভাবে সামলায়, কিন্তু কিছু কাজ তাতে নেই বা কঠিন:

  • সব বিকল্পসহ interactive rebase, git bisect, git reflog, git worktree;
  • একাধিক stash entry, submodules, remote-এর সূক্ষ্ম সেটিং;
  • SSH-এর মাধ্যমে সার্ভারে কাজ এবং script ও CI-তে স্বয়ংক্রিয়করণ;
  • Linux, যেখানে অফিসিয়াল সংস্করণ নেই।

এ ছাড়া ইন্টারভিউতে কমান্ডের প্রশ্নই আসে, এবং fetch, merge ও rebase কী করে তা বোঝা GUI ব্যবহারেও সাহায্য করে। ভালো পদ্ধতি হলো command line ভালোভাবে জানা, এবং অ্যাপ সেখানে ব্যবহার করা যেখানে তা সময় বাঁচায়: diff দেখতে, আংশিক commit-এ এবং conflict মেটাতে। GitHub Desktop-এর Repository মেনু থেকে আপনি সরাসরি প্রজেক্ট ফোল্ডারে terminal খুলতে পারেন।

উপসংহার

GitHub Desktop Windows ও macOS-এ Git ব্যবহারের সহজ ও বিনামূল্যের উপায়: desktop.github.com থেকে ডাউনলোড করুন, অ্যাকাউন্টে লগইন করুন, repository clone করুন, এবং commit, push, pull, branch ও conflict বোতাম দিয়ে করুন। Stash, LFS ও reset-এ সুবিধা সীমিত, আর জটিল কাজ terminal-এ থেকে যায়। Remote repository, push, pull ও pull request দিয়ে দলের কাজ এই কোর্সে বাস্তবে বিস্তারিত শেখানো হয়েছে।

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

GitHub Desktop কি বিনামূল্যে?

হ্যাঁ, অ্যাপটি সম্পূর্ণ বিনামূল্যে এবং ওপেন-সোর্স; টাকা লাগে কেবল GitHub-এর পেইড প্ল্যানে, যদি আপনার সেগুলো দরকার হয়।

GitHub Desktop-এর জন্য কি আলাদাভাবে Git ইনস্টল করতে হবে?

না, অ্যাপের ভেতরে Git-এর নিজস্ব কপি আছে। তবে terminal-এ কাজ করতে চাইলে আপনার সিস্টেমে Git আলাদাভাবে ইনস্টল করুন।

GitHub Desktop কি GitLab বা Bitbucket-এর সঙ্গে চলে?

হ্যাঁ, URL ট্যাবে HTTPS ঠিকানা দিয়ে repository clone করা যায়। Pull request ও অ্যাকাউন্ট দিয়ে লগইনের সুবিধা শুধু GitHub-এর জন্য পুরোপুরি কাজ করে।

GitHub Desktop কি বাংলায় পাওয়া যায়?

অফিসিয়াল বাংলা ইন্টারফেস নেই, অ্যাপটি ইংরেজিতে। বোতামের নাম ছোট এবং Git কমান্ডের সঙ্গে মেলে, তাই বোঝা কঠিন নয়।

GitHub Desktop পরিবর্তন দেখাচ্ছে না কেন?

প্রায়ই ফাইলটি .gitignore-এর কোনো নিয়মে পড়ে যায়, অথবা অন্য একটি repository ফোল্ডার খোলা থাকে। Current repository মেনুতে পথ এবং .gitignore-এর বিষয়বস্তু যাচাই করুন।

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

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

কোর্সে যান