দুটি আদেশের একই প্রভাব রয়েছে ( এটি নির্দেশ করার জন্য রবার্ট সিমারের উত্তরের জন্য ধন্যবাদ )।
স্থানীয় শাখাটি ভিন্নভাবে ব্যবহার করার সময় ব্যবহারিক পার্থক্য আসে :
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তবে গিট-কোর্স- জানেন না। সুতরাং আপনি এর দূরবর্তী নির্দিষ্ট করা উচিত।