দুটি আদেশের একই প্রভাব রয়েছে ( এটি নির্দেশ করার জন্য রবার্ট সিমারের উত্তরের জন্য ধন্যবাদ )।
স্থানীয় শাখাটি ভিন্নভাবে ব্যবহার করার সময় ব্যবহারিক পার্থক্য আসে :
git checkout -b mybranch origin/abranch
তৈরি mybranch
এবং ট্র্যাক করবেorigin/abranch
git checkout --track origin/abranch
কেবলমাত্র ' abranch
' তৈরি করবে , ভিন্ন নামের শাখা নয়।
(অর্থাৎ, যেমন মন্তব্য দ্বারা সেবাস্টিয়ান গ্রাফ যদি স্থানীয় শাখা করেছিলেন না ইতিমধ্যেই বিদ্যমান।
যদি তা, আপনি প্রয়োজন হবে git checkout -B abranch origin/abranch
)
দ্রষ্টব্য: গিট 2.23 (Q3 2019) সহ, এটি নতুন আদেশটিgit switch
ব্যবহার করবে :
git switch -c <branch> --track <remote>/<branch>
যদি শাখাটি একাধিক রিমোটে উপস্থিত থাকে এবং সেগুলির একটির নামকরণ checkout.defaultRemote
কনফিগারেশন ভেরিয়েবল দ্বারা করা হয়, তবে আমরা সেইটিকে অসম্পূর্ণতার উদ্দেশ্যে ব্যবহার করব, এমনকি <branch>
সমস্ত দূরবর্তী অঞ্চলে অনন্য না হলেও ।
এটি স্থাপন করুন উদাহরণস্বরূপ checkout.defaultRemote=origin
সেখান থেকে দূরবর্তী শাখাগুলি <branch>
অস্পষ্ট থাকলেও 'উত্স' দূরবর্তীটিতে উপস্থিত থাকলে চেকআউট করতে ।
এখানে ' -c
' নতুন ' -b
'।
প্রথমত, কিছু ব্যাকগ্রাউন্ড: ট্র্যাকিংয়ের অর্থ একটি স্থানীয় শাখার প্রত্যন্ত শাখায় সেট আপ হয়েছে:
# git config branch.<branch-name>.remote origin
# git config branch.<branch-name>.merge refs/heads/branch
git checkout -b branch origin/branch
ইচ্ছাশক্তি:
branch
রেফারেন্স করা পয়েন্টটিতে তৈরি / পুনরায় সেট করুন origin/branch
।
- শাখাটি তৈরি করুন
branch
(সহ git branch
) এবং দূরবর্তী ট্র্যাকিং শাখাকে ট্র্যাক করুন origin/branch
।
কোনও স্থানীয় শাখা যখন রিমোট-ট্র্যাকিং শাখা থেকে শুরু করা হয়, গিট শাখাটি স্থাপন করে (বিশেষত branch.<name>.remote
এবং branch.<name>.merge
কনফিগারেশন এন্ট্রি) যাতে git pull
যথাযথভাবে দূরবর্তী ট্র্যাকিং শাখা থেকে মার্জ হয়ে যায়।
এই আচরণটি বিশ্বব্যাপী branch.autosetupmerge
কনফিগারেশন পতাকা মাধ্যমে পরিবর্তন করা যেতে পারে । এই সেটিংটি বিকল্পগুলি --track
এবং --no-track
বিকল্পগুলি ব্যবহার করে ওভাররাইড করা যেতে পারে এবং পরে গিট শাখা ব্যবহার করে পরিবর্তিত হতে পারে --set-upstream-to
।
এবং git checkout --track origin/branch
একই হিসাবে করবে git branch --set-upstream-to
):
# or, since 1.7.0
git branch --set-upstream upstream/branch branch
# or, since 1.8.0 (October 2012)
git branch --set-upstream-to upstream/branch branch
# the short version remains the same:
git branch -u upstream/branch branch
এটি ' branch
' এর জন্যও প্রবাহ স্থাপন করবে ।
(দ্রষ্টব্য: git1.8.0 git branch --set-upstream
এটিকে অবমূল্যায়ন করবে এবং এর সাথে প্রতিস্থাপন করবে git branch -u|--set-upstream-to
: git1.8.0-rc1 ঘোষণা দেখুন )
স্থানীয় শাখার জন্য নিবন্ধিত একটি উজানের শাখাটি হবে:
- দুটি শাখার মধ্যে
git status
এবং এর মধ্যে সম্পর্ক দেখানোর জন্যgit branch -v
গিটকে বলুন ।
- নতুন শাখাটি চেক আউট করা হলে আপস্রোম থেকে টানা
git pull
যুক্তি ছাড়াই নির্দেশনা দেয় ।
আরও তথ্যের জন্য " আপনি কীভাবে বিদ্যমান গিট শাখা ট্র্যাকটি দূরবর্তী শাখাকে ট্র্যাক করবেন? " দেখুন।
git pull
, তবে কিছু শাখাগুলি একটি প্রত্যন্ত শাখা থেকে টানতে বলবে। দেখা যাচ্ছে যে আপনি যদি প্রথমবারের মতো, আপনারbranch.<BNAME>.remote=origin
পিয়ারটি তৈরি করে এমন কোনও দূরবর্তী শাখা পরীক্ষা করে দেখেন, গিটটি চলে যায় এবং স্থানীয় গিটকনফাইগে যুক্ত হয়। যা আপনাকে ইস্যু করার অনুমতি দেয়git pull
। তবে, আপনি যদি সেই শাখা তৈরি করছেনgit checkout -b BNAME
তবে গিট-কোর্স- জানেন না। সুতরাং আপনি এর দূরবর্তী নির্দিষ্ট করা উচিত।