এই কোর্সে এখন পর্যন্ত প্রতিটা commit history-র একটা লাইনে ঘটেছে। একটা branch development-কে ভাগ হতে দেয় — একটা নতুন feature চেষ্টা করা, একটা bug ঠিক করা, বা experiment করা — প্রস্তুত না হওয়া পর্যন্ত কাজ করা version স্পর্শ না করেই।
একটা নতুন repository একটা branch দিয়ে শুরু হয়, প্রচলিতভাবে main নামে (পুরনো project কখনো master ব্যবহার করে) — project-এর স্থিতিশীল, কাজ করা history-র লাইন।
git branch feature-login
# branch তৈরি করে, কিন্তু এখনো এতে switch করে নাgit switch feature-login
# বা, পুরনো সমতুল্য যা এখনো সবখানে দেখা যায়:
git checkout feature-logingit switch -c feature-login
# বা
git checkout -b feature-logingit branch
# main
# * feature-login <- asterisk বর্তমান branch চিহ্নিত করেfeature-login-এ থাকার সময় করা commit শুধু সেই branch-এ থাকে — main-এ ফিরে switch করলে সেই পরিবর্তনগুলো দেখা থেকে অদৃশ্য হয়ে যায় (delete হয় না, শুধু main-এর history-র অংশ না) branch merge না হওয়া পর্যন্ত, পরের lesson-এ কভার করা।
git switch feature-login
# ... পরিবর্তন করুন, git add, git commit ...
git switch main
# feature-login commit এখনো এখানে দেখা যায় না# নিরাপদ delete — branch-এ unmerged পরিবর্তন থাকলে প্রত্যাখ্যান করে
git branch -d feature-login
# Force delete, unmerged পরিবর্তন থাকলেও
git branch -D feature-loginঅবাধে branch করুন
প্রতিটা আসল পরিবর্তনের জন্য — এমনকি একটা ছোটটার জন্যও — একটা branch তৈরি করা প্রায় কিছুই খরচ করে না আর main-কে সবসময় একটা কাজ করা অবস্থায় রাখে। একা এই habit একজন শুরুর দিকের মানুষ যে বেশিরভাগ "আমি সবকিছু ভেঙে ফেলেছি" মুহূর্তে পড়ে তা আটকায়।