আপনি যদি branch
কমান্ডের এই ফর্মটি (স্টার্ট পয়েন্ট সহ) ব্যবহার করে থাকেন তবে এটি কোথায় তা আপনার বিবেচ্য নয় HEAD
।
তুমি কি করছ:
git checkout dev
git branch test 07aeec983bfc17c25f0b0a7c1d47da8e35df7af8
প্রথমে, আপনি HEAD
শাখায় সেট আপ করুন dev
,
দ্বিতীয়ত, আপনি প্রতিশ্রুতিবদ্ধ উপর একটি নতুন শাখা শুরু 07aeec98
। এই প্রতিশ্রুতিতে কোনও বিবি টেক্সট নেই (আপনার গিথুব রেপো অনুসারে)।
যদি আপনি একটি নতুন শাখা শুরু করতে চান তাহলে অবস্থান আপনি শুধু চেক আউট আছে এ আপনি হয় কোন শুরুর বিন্দু সঙ্গে শাখা চালাতে পারেন:
git branch test
বা অন্যরা যেমন উত্তর দিয়েছে, সেখানে একটি ক্রিয়াকলাপে সেখানে শাখা এবং চেকআউট:
git checkout -b test
আমি মনে করি যে আপনি সম্ভবত এই শাখারই 07aeec98
অংশ দ্বারা বিভ্রান্ত হতে পারেন dev
। সত্য যে এই প্রতিশ্রুতি পূর্বপুরুষ dev
, এটির সর্বশেষ প্রতিশ্রুতিতে পৌঁছানোর জন্য এর পরিবর্তনগুলি প্রয়োজন dev
। তবে, এগুলি অন্যান্য চুক্তি যা সর্বশেষতম পৌঁছানোর জন্য প্রয়োজন dev
এবং এগুলি ইতিহাসের ইতিহাসে অগত্যা নয় 07aeec98
।
8480e8ae
(যেখানে আপনি bb.txt যুক্ত করেছেন) উদাহরণটি ইতিহাসের নয় 07aeec98
। আপনি যদি শাখা করেন তবে আপনি 07aeec98
পরিবর্তিত পরিবর্তনগুলি পাবেন না 8480e8ae
।
অন্য কথায়: আপনি যদি শাখা A এবং শাখা বি শাখা সিতে মার্জ করেন, তবে A এর প্রতিশ্রুতিতে একটি নতুন শাখা তৈরি করুন, আপনি বি তে প্রবর্তিত পরিবর্তনগুলি পাবেন না won't
এখানেও আপনার দুটি সমান্তরাল শাখা মাস্টার এবং দেব ছিল, যা আপনি দেবের সাথে একীভূত হয়েছিলেন। মাস্টার কমিট থেকে বের হওয়া (একীভূতের চেয়ে পুরানো) আপনাকে দেবের পরিবর্তনগুলি সরবরাহ করবে না।
আপনি যদি নিজের বৈশিষ্ট্য শাখায় মাস্টার থেকে নতুন পরিবর্তন স্থায়ীভাবে সংহত করতে চান তবে আপনার সেগুলিতে একীভূত হয়ে চলতে master
হবে। যদিও এটি আপনার বৈশিষ্ট্য শাখায় মার্জ কমিট তৈরি করবে।
আপনি আপনার বৈশিষ্ট্য শাখা প্রকাশ করেন নি, তাহলে আপনি আপডেট মাস্টার তাদের রি-বেসের ফলে পারেন: git rebase master featureA
। সম্ভাব্য দ্বন্দ্ব সমাধানের জন্য প্রস্তুত থাকুন।
আপনি যদি এমন একটি ওয়ার্কফ্লো চান যেখানে আপনি মার্জ কমিটস্ থেকে মুক্ত বৈশিষ্ট্য শাখায় কাজ করতে পারেন এবং এখনও মাস্টারটিতে নতুন পরিবর্তনের সাথে সংহত করতে পারেন, আমি নিম্নলিখিতটি সুপারিশ করছি:
- মাস্টার প্রতিশ্রুতি উপর ভিত্তি করে প্রতিটি নতুন বৈশিষ্ট্য শাখা
dev
মাস্টার একটি প্রতিশ্রুতি উপর একটি শাখা তৈরি
- যখন আপনাকে দেখতে হবে যে কীভাবে আপনার বৈশিষ্ট্য শাখাটি মাস্টারে নতুন পরিবর্তনের সাথে সংহত হয়, তখন মাস্টার এবং বৈশিষ্ট্য শাখা উভয়কেই এতে একত্রিত করে
dev
।
dev
সরাসরি প্রতিশ্রুতিবদ্ধ করবেন না , এটি কেবল অন্যান্য শাখা মার্জ করার জন্য ব্যবহার করুন।
উদাহরণস্বরূপ, আপনি যদি এ এবং বি বৈশিষ্ট্যটিতে কাজ করছেন:
a---b---c---d---e---f---g -master
\ \
\ \-x -featureB
\
\-j---k -featureA
dev
নতুন মাস্টারের সাথে তারা ভালভাবে কাজ করে কিনা তা পরীক্ষা করতে শাখাগুলিকে একটি শাখায় মার্জ করুন :
a---b---c---d---e---f---g -master
\ \ \
\ \ \--x'---k' -dev
\ \ / /
\ \-x---------- / -featureB
\ /
\-j---k--------------- -featureA
আপনি আপনার বৈশিষ্ট্য শাখাগুলিতে কাজ চালিয়ে যেতে পারেন এবং dev
নিয়মিতভাবে মাস্টার এবং বৈশিষ্ট্য শাখা উভয় থেকে নতুন পরিবর্তনগুলিতে মার্জ করে রাখতে পারেন ।
a---b---c---d---e---f---g---h---i----- -master
\ \ \ \
\ \ \--x'---k'---i'---l' -dev
\ \ / / /
\ \-x---------- / / -featureB
\ / /
\-j---k-----------------l------ -featureA
যখন নতুন বৈশিষ্ট্যগুলি সংহত করার সময় হয়ে যায় তখন বৈশিষ্ট্যগুলি শাখাগুলি (নয় dev
!) মাস্টারে মার্জ করুন ।