git - জিট চেকআউট ট্যাগ, গিট টান শাখা ব্যর্থ হয়




git-pull git-checkout (10)

আমি একটি জিট রেপোজিটরি ক্লোন করেছি এবং তারপরে একটি ট্যাগ চেক আউট করেছি:

# git checkout 2.4.33 -b my_branch

এটি ঠিক আছে, কিন্তু যখন আমি আমার শাখায় git pull চালানোর চেষ্টা করি, জিট এই ত্রুটিটি স্পষ্ট করে দেয়:

বর্তমান শাখার জন্য কোন ট্র্যাকিং তথ্য নেই। আপনি কোন একত্রিত করতে চান তা নির্দিষ্ট করুন। বিস্তারিত জানার জন্য গিট-পুল (1) দেখুন

git pull <remote> <branch>

আপনি যদি এই শাখাটির জন্য ট্র্যাকিং তথ্য সেট করতে চান তবে আপনি এটি দিয়ে এটি করতে পারেন:

git branch --set-upstream new origin/<branch>

আমি শুধুমাত্র মাস্টার শাখাটি আপডেট করতে git pull চাই এবং আমার বর্তমান শাখাটি ছেড়ে দিই (এটি কোনও ট্যাগ)। এই সম্ভব ভালো কিছু হয়?

আমার এটার দরকার এই যে আমার কাছে একটি স্বয়ংক্রিয় স্ক্রিপ্ট রয়েছে যা সর্বদা রিপোজিটরিটি টেনে নেয় এবং অবশ্যই ত্রুটিটির কারণে ব্যর্থ হয়।


আপডেট ডাউনলোড করার জন্য:

git fetch origin master

যাইহোক, এটি কেবল origin/master নামে একটি রেফারেন্স আপডেট করে। আপনার স্থানীয় master আপডেট করার সেরা উপায় অন্য মন্তব্যে উল্লিখিত চেকআউট / মার্জ হবে। যদি আপনি গ্যারান্টি দিতে পারেন যে আপনার স্থানীয় master origin/master প্রধান ট্রাঙ্ক থেকে বিচ্ছিন্ন না হয়ে থাকে, তবে আপনি আপনার বর্তমান master নতুন বিন্দুতে মানচিত্র করার জন্য git update-ref ব্যবহার করতে পারেন, তবে সম্ভবত এটি ব্যবহার করার জন্য সর্বোত্তম সমাধান নয় নিয়মিত ভিত্তিতে ...


আপনি একাধিক শাখা থাকতে পারে। এবং আপনার বর্তমান শাখা দূরবর্তী তার আপস্ট্রিম সেট না।

এই সমস্যা সমাধানের জন্য:

git checkout branch_name
git branch --set-upstream-to=origin/remote_branch_name local_branch_name

যেমন

// this set upstream of local branch develop to remote branch  origin/develop,
git branch --set-upstream-to=origin/develop develop

এই কাজ করার পরে, আপনি git pull না যখন, এটা নির্দিষ্ট শাখা থেকে টান।


আমার জন্য কি কাজ ছিল: গিট শাখা - সেট আপস্ট্রিম-টু = মূল মাস্টার যখন আমি আবার টান দিয়েছিলাম তখন আমি মাস্টার থেকে আপডেট পেয়েছিলাম এবং সতর্কতা চলে গেল।


আমার মত যদি আপনি সর্বদা এটি করতে হবে, আপনি আপনার .gitconfig ফাইলে নিম্নলিখিতটি যোগ করে স্বয়ংক্রিয়ভাবে এটি করার জন্য একটি উপনাম সেট আপ করতে পারেন:

[alias]
    set-upstream = !git branch --set-upstream-to=origin/`git symbolic-ref --short HEAD`

যখন আপনি বার্তাটি দেখেন তখন There is no tracking information... , কেবল git set-upstream চালান, তারপরে আবার git push

ধন্যবাদ https://zarino.co.uk/post/git-set-upstream/


এই কমান্ড ব্যবহার করে দেখুন:

git pull origin master
git push -u origin master

এই কমান্ডটি বাতিল করা হয়েছে: git branch --set-upstream master origin/master

সুতরাং, ট্র্যাকিং সেট আপ করার চেষ্টা করার সময়, এই কমান্ড যা আমার জন্য কাজ করেছে:

git branch --set-upstream-to=origin/master master

প্রথম, আপনি সঠিক শাখায় আছে তা নিশ্চিত করুন।
তারপর (শুধুমাত্র একবার):

git branch --track

তারপরে এটি আবার কাজ করে:

git pull

বর্তমান শাখার জন্য আপনাকে আপনার ট্র্যাকিং (আপস্ট্রিম) সেট আপ করতে হবে

git branch --set-upstream master origin/master

আপনি ইতিমধ্যে --track পতাকা ব্যবহার করতে পারেন যে পরিবর্তে অব্যবহৃত হয়

git branch --track master origin/master

আমি ডক রেফারেন্স পছন্দ করি যে @casey নোটিশ:

-u <upstream>
  Set up <branchname>'s tracking information so <upstream> is considered  
  <branchname>'s upstream branch. If no <branchname> is specified,  
  then it defaults to the current branch.

সম্পাদনা: গিটের নতুন সংস্করণগুলির জন্য, --set-upstream master হয়েছে, আপনি --set-upstream-to পরিবর্তে ব্যবহার --set-upstream-to হবে:

git branch --set-upstream-to=origin/master master

এটি প্রম্পট হিসাবে, আপনি শুধু চালাতে পারেন:

git branch --set-upstream master origin/master

তারপরে, আপনি কেবল আপনার কোড আপডেট করতে git pull চালাতে পারেন।


@alesko : কেবলমাত্র master শাখাটি আপডেট করার জন্য চেকআউট my_branch শুধুমাত্র my_branch git pull সম্ভব নয়।
কারণ git pull এছাড়াও বর্তমান শাখায় একত্রিত হবে -> আপনার দৃশ্যকল্প থেকে my_branch

@Simon : যে ধাক্কা হবে। কেন যে?

$ git branch -u origin/master
Branch master set up to track remote branch master from origin.

এবং দস্তাবেজ অনুযায়ী:

-u <upstream>
  Set up <branchname>'s tracking information so <upstream> is considered  
  <branchname>'s upstream branch. If no <branchname> is specified,  
  then it defaults to the current branch.




git-checkout