গিট: শাখার জন্য ডিফল্ট কনফিগার করা দূরবর্তী কোনটি?


192

আমার কাছে রিমোট বেয়ার রিপোজিটরি রয়েছে hub। আমি কেবল masterশাখায় কাজ করি । নীচের এই ত্রুটি বার্তার শেষ বাক্যটি আমাকে অবাক করে তুলেছে: "আপনার বর্তমান শাখার জন্য ডিফল্ট কনফিগার করা রিমোট" কোনটি আমি কীভাবে আবিষ্কার করব ? এবং আমি কীভাবে সেট করব?

[myserver]~/progs $ git remote -v
hub     ~/sitehub/progs.git/ (fetch)
hub     ~/sitehub/progs.git/ (push)

[myserver]~/progs $ git branch -r
  hub/master

[myserver]~/progs $ cat .git/HEAD
ref: refs/heads/master

[myserver]~/progs $ git pull hub
You asked to pull from the remote 'hub', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.

উত্তর:


230

দূরবর্তী শাখা ট্র্যাক করুন

গিট-ব্রাঞ্চের ট্র্যাক বিকল্পটি ব্যবহার করে ধাক্কা এবং টানানোর জন্য আপনি ডিফল্ট রিমোট রিপোজিটিরি নির্দিষ্ট করতে পারেন। আপনি আপনার স্থানীয় মাস্টার শাখাটি তৈরি করার সময় --track বিকল্পটি নির্দিষ্ট করে সাধারণত এটি করতে চাইতেন তবে এটি ইতিমধ্যে বিদ্যমান হিসাবে আমরা ঠিক তেমনভাবে কনফিগারটি আপডেট করব:

আপনার সম্পাদনা করুন .git/config

[branch "master"]
  remote = origin
  merge = refs/heads/master

এখন আপনি কেবল গিট ঠেলা এবং গিট টানতে পারেন।

[ উত্স ]


ওপি করলে কি এটিও সেট করা হবে না git pull hub master?
রায়ান বিগ

@ রায়ান বিগ: স্বয়ংক্রিয়ভাবে নয় বা আপনি সর্বদা আপনার কনফিগারেশনটি স্ক্রু আপ করবেন।
অকর্মা

36
এই কারণেই যখন গিট কমান্ড উপস্থিত থাকে তখন একটি কনফিগার ফাইল কেন সম্পাদনা করবেন?
urschrei

43
গিট শাখা - সেট-আপস্ট्रीम লোকাল_ ব্রাঞ্চ রিমোট / রিমোট_ব্রাঞ্চ (বা ধাক্কা দেওয়ার সময় নীচে বিস্তারিত হিসাবে বলা হয়েছে)
এরশ্রেই

25
@ স্ক্রাগজ: উপায় নেই! কমান্ড পদ্ধতির গ্যারান্টি দেয় আপনার .gitconfig একটি অর্থবহ অবস্থায় রয়েছে।
smci

260

আপনি .gitconfigঅর্থবহুল অবস্থায় রেখে গেছেন এমন গ্যারান্টি দিয়ে আপনি আরও সহজভাবে এটি করতে পারেন :

গিট সংস্করণ v1.8.0 এবং উপরের ব্যবহার করে

git push -u hub master যখন ধাক্কা, বা:
git branch -u hub/master

অথবা

(এই জন্য দূরবর্তী সেট হবে বর্তমানে পরীক্ষা-আউট শাখা থেকে hub/master)
git branch --set-upstream-to hub/master

অথবা

(এই নামে শাখা জন্য দূরবর্তী সেট হবে branch_nameথেকে hub/master)
git branch branch_name --set-upstream-to hub/master

আপনি যদি ব্যবহার করছেন v1.7.xবা এর আগেও

আপনি অবশ্যই ব্যবহার করুন --set-upstream:
git branch --set-upstream master hub/master


3
যে কেউ ভাবছেন: দ্বিতীয় কমান্ডটি বিদ্যমান শাখাগুলির জন্য ব্যবহার করা যেতে পারে
এরিক হু

1
@ এরিক-হু আমার উত্তর এখানে বিস্তারিত হিসাবে: stackoverflow.com/questions/4878249/...
urschrei

1
set-upstream[-to]কমান্ড পরিবর্তন বর্তমানে কনফিগার দূরবর্তী। মূল পোস্টারটি ডিফল্ট কনফিগার করা দূরবর্তী সম্পর্কে জিজ্ঞাসা করেছিল । অবশ্যই এটি বেশ একই ধারণা নয়?
স্টিভ পিচারস

1
প্রতিটি শাখায় বর্তমানে একটি কনফিগার করা রিমোট রয়েছে যা নির্দিষ্ট করে যে দূরবর্তীটিতে কোন শাখা স্থানীয় শাখার সাথে সম্পর্কিত। ডিফল্ট দূরবর্তী কনফিগার নির্ধারণ করে যা শাখা ধাক্কা অথবা যদি আপনি এক স্পষ্টভাবে নির্দিষ্ট না টানা হয়। এই উত্তরটি কেবলমাত্র বর্তমানটিকে সেট করে । গৃহীত উত্তর (হাত দ্বারা সম্পাদনা) আপনাকে ডিফল্ট একটি সেট করতে দেয় । কেউ কি এমন কোনও আদেশ জানেন যা হাত দ্বারা সম্পাদনা করা এড়ায়?
স্টিভ পিচারস

1
--set-upstream-to.git/config@scragz তার উত্তরে যে পরামর্শ দিয়েছে ঠিক তেমন পরিবর্তন করেছে ।
স্ট্রহ

26

সম্পূর্ণতার স্বার্থে: পূর্ববর্তী উত্তরগুলি কীভাবে প্রবাহিত শাখাটি সেট করবেন তা জানায়, তবে কীভাবে তা দেখা যায় না।

এটি করার কয়েকটি উপায় রয়েছে:

git branch -vvসমস্ত শাখার জন্য তথ্য প্রদর্শন করে। (বেশিরভাগ টার্মিনালে নীল রঙে ফর্ম্যাট করা)

cat .git/config এটিও দেখায়

রেফারেন্সের জন্য:


-1

শাখার জন্য কার্যকর পুশ রিমোট পেতে কমান্ডটি, যেমন, মাস্টার, হ'ল:

গিট কনফিগারেশন শাখা.মাষ্টার.পুশরোমোট || গিট কনফিগার রিমোট.পুষডেফাল্ট || গিট কনফিগারেশন শাখা.মাষ্টার.রেমোট

এখানে কেন ("ম্যান গিট কনফিগারেশন" আউটপুট থেকে):

ব্রাঞ্চ.নেম.রিমোট [...] গিট আনতে এবং গিট পুশকে জানায় যা রিমোট থেকে আনতে হবে / ধাক্কা [...] [ধাক্কা দেওয়ার জন্য] রিমোট.পুষ্ড ডিফল্ট (সমস্ত শাখার জন্য) দিয়ে ওভাররাইড করা যেতে পারে [এবং] এর জন্য বর্তমান শাখা [..] আরও দ্বারা অধিলিখিত branch.name.pushRemote [...]

কোনও কারণে, "ম্যান গিট পুশ" কেবল শাখা.নাম.রেমোট সম্পর্কে জানায় (যদিও এটির তিনটির মধ্যে ন্যূনতম নজির রয়েছে) + ভ্রান্তভাবে বলেছে যে এটি সেট না করা থাকলে ডিফল্টটিকে উত্সের দিকে ঠেলে দাও - এটি ঠিক না, এটি ঠিক যে আপনি যখন কোনও রেপো ক্লোন করবেন, তখন branch


এই প্রশ্নের ইতিমধ্যে আরও কার্যকর উত্তর দিয়ে উত্তর দেওয়া হয়েছিল।
অস্টিন শোফার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.