আপনি কোন শাখায় একত্রী হতে চান তা আমাকে না জানিয়ে আপনি আমাকে টানতে বলেছিলেন


125

টিএল; ডিআর: আমার একটি "ট্র্যাকড" শাখা রয়েছে যা আমি টানতে পারি না।

সুতরাং এখানে আমি "বালতি -4" এ আছি:

$ git branch -v
  bucket-1       410f7b5 * gh-53 * gh-48 * "Share App"
  bucket-2       7ed70a2 * upgrade to SOLR 3.3.0
  bucket-3       400ffe4 * emergency fix prod issue
* bucket-4       64c2414 Merge branch 'bucket-3' into bucket-4
  master         8dc4854 [ahead 1] * gh-73

আমি আমার দূরবর্তী থেকে পরিবর্তনগুলি এড়াতে চাই:

$ git pull

You asked me to pull without telling me which branch you
want to merge with, and 'branch.bucket-4.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.

If you often merge with the same branch, you may want to
use something like the following in your configuration file:

    [branch "bucket-4"]
    remote = <nickname>
    merge = <remote-ref>

    [remote "<nickname>"]
    url = <url>
    fetch = <refspec>

See git-config(1) for details.

হুম, বিজোড়, আমি ভেবেছিলাম আমি ইতিমধ্যে একটি ট্র্যাকিং শাখা হিসাবে "বালতি -4" যুক্ত করেছি। দেখা যাক:

$ git remote show origin
* remote origin
  Fetch URL: git@github.com:abcd/main.git
  Push  URL: git@github.com:abcd/main.git
  HEAD branch (remote HEAD is ambiguous, may be one of the following):
    bucket-3
    master
  Remote branches:
    bucket-1       tracked
    bucket-2       tracked
    bucket-3       tracked
    bucket-4       tracked
    master         tracked
  Local branches configured for 'git pull':
    bucket-1       merges with remote bucket-1
    bucket-2       merges with remote bucket-2
    bucket-3       merges with remote bucket-3
    master         merges with remote master
  Local refs configured for 'git push':
    bucket-1       pushes to bucket-1       (up to date)
    bucket-2       pushes to bucket-2       (up to date)
    bucket-3       pushes to bucket-3       (up to date)
    bucket-4       pushes to bucket-4       (local out of date)
    master         pushes to master         (fast-forwardable)

আসলে, বালতি -4 "ট্র্যাকড" হিসাবে চিহ্নিত হয়েছে, তবুও এটি কোনওভাবে ধাক্কা দেওয়ার জন্য কনফিগার করা হয়েছে, তবে টানছে না not

আমার .git/configফাইলটি দেখে আমি দেখতে পাচ্ছি যে আমার বেশিরভাগ শাখার জন্য আমার "রিমোট" এবং "মার্জ" এন্ট্রি রয়েছে, তবে বালতি -4 এর জন্য নয়। এটি ছাড়া এটি কীভাবে "ট্র্যাকড" হিসাবে বিবেচিত হয়?

[remote "origin"]
    url = git@github.com:abcd/main.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[branch "rel-2011-07-07"]
    remote = origin
    merge = refs/heads/rel-2011-07-07
[branch "bucket-1"]
    remote = origin
    merge = refs/heads/bucket-1
[branch "bucket-2"]
    remote = origin
    merge = refs/heads/bucket-2
[branch]
    autosetupmerge = true
[branch "bucket-3"]
    remote = origin
    merge = refs/heads/bucket-3

আমি দেখতে পাচ্ছি যে এখানে সম্ভাব্য সমাধানটি remote/mergeআমার কনফিগার ফাইলে বালতি -4 এর জন্য এন্ট্রি যুক্ত করা হবে। তবে এগুলি কীভাবে "ট্র্যাকড" হিসাবে বিবেচিত হবে? বালতি -4 স্থানীয়ভাবে তৈরি করা হয়েছিল, তারপরে এই রেপো থেকে সার্ভারে ধাক্কা দেওয়া হয়েছে, তাই আমার সন্দেহ হয় যে কোনওভাবেই আমি এই শাখার জন্য সঠিকভাবে ট্র্যাকিং সেটআপ করি নি।

ভবিষ্যতে সমস্ত স্থানীয় শাখা তাদের রিমোটগুলি সঠিকভাবে ট্র্যাক করার জন্য আমি কি কিছু কনফিগারেশন যুক্ত করতে পারি?


2
এই প্রশ্নটি আমাকে সঠিক দিকে ইঙ্গিত করেছে, আমি যে শাখায় টানতে চেষ্টা করেছিলাম তার জন্য আমার .git / কনফিগারেশন ফাইলটিতে কেবল একটি এন্ট্রি যুক্ত করতে হবে তখন এটি ঠিকঠাক কাজ করেছিল।
মিঃ বাংলো

হ্যাঁ আমাকেও, এবং এটি করার উপায় হ'ল মার্ক লংএয়ার নীচে গিট শাখা --set-upstream বালতি -4 উত্স / বালতি -4
জনাথন হর্সম্যান

উত্তর:


191

এটি bucket-4 pushes to bucket-4কেবল কারণ একটি শাখা টিপানোর সময় ডিফল্ট হ'ল এটি রিমোটের সাথে মিলে যাওয়া নামের সাথে একটিকে ধাক্কা দেয়। (দ্রষ্টব্য যে এটি এখনও ডিফল্ট, এমনকি যদি স্থানীয় শাখা একটি দূরবর্তী ট্র্যাকিং শাখা ট্র্যাক করে এবং রিমোট ট্র্যাকিং শাখা দূরবর্তী সংগ্রহস্থলের একটি পৃথক নামের সাথে একটি শাখার সাথে সম্পর্কিত হয়))

আপনার bucket-4এবং এর bucket-4মধ্যে অ্যাসোসিয়েশন স্থাপনের সহজতম উপায় originহ'ল পরের বার আপনি যখন চাপ দেবেন তখন আপনি যা করছেন তা নিশ্চিত করা:

git push -u origin bucket-4

বিকল্পভাবে, আপনি এটি করতে পারেন:

git branch --set-upstream-to origin/bucket-4

আপনার কয়েকটি প্রশ্নের সরাসরি উত্তর দিতে:

এটি ছাড়া এটি কীভাবে "ট্র্যাকড" হিসাবে বিবেচিত হয়?

এই ক্ষেত্রে এটি নয় - এটি আপনার গিট কনফিগারেশনে না থাকলে branch.bucket-4.mergeবা কোনও দিক থেকে দূরবর্তী ট্র্যাকিং শাখাকে ট্র্যাক করছে না branch.bucket-4.remote। আউটপুট কেবল git remote show originআপনাকে দেখায় যে শাখাটি ডিফল্টরূপে ধাক্কা দেওয়া হবে।

ভবিষ্যতে সমস্ত স্থানীয় শাখা তাদের রিমোটগুলি সঠিকভাবে ট্র্যাক করার জন্য আমি কি কিছু কনফিগারেশন যুক্ত করতে পারি?

আমি মনে করি না যে আছে। যখন আপনি bucket-4স্থানীয়ভাবে তৈরি করেছেন , যেমন আমি অনুমান করেছি যে রিমোট-ট্র্যাকিং শাখাটি বিদ্যমান ছিল না, সুতরাং এটি সেই সময়ে সেট আপ করা যায় না - এটি খুব বিভ্রান্তিকর ডিফল্ট আচরণ হবে। আপনার কেবলমাত্র সেই শাখার -uপ্রথমটি git pushতার প্রবাহের ভাণ্ডারে যুক্ত করতে হবে।

আমি আশা করি এটি কিছুটা সাহায্যকারী।


7
git branch --set-upstreamআমার কাছে টান দেওয়ার আগে পুরোপুরি কাজ করেছিল
ওহাল

গিট শাখা --set-upstream বালতি -4 উত্স / বালতি -4 আমার জন্য কাজ করেছে :-)
অ্যালিজা

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

1
প্রকৃতপক্ষে চেষ্টা করার সময় git --set-upstream <branch> origin/<branch>আপনি পতাকাটি হ্রাস পেয়ে যাওয়ায় একটি ত্রুটি পান। এটি ব্যবহার করতে git branch --track origin/<branch>বা --set-upstream-toদ্বিতীয় উত্তর হিসাবে প্রস্তাবিত হিসাবে পুনরায় সংশোধন করা হয়। আমার ধারণা উত্তরটি আপডেট হতে পারে, @ মারকলঙ্গায়ার?
আইয়ামদেব

@ অ্যামডেভ - এই পরামর্শের জন্য ধন্যবাদ - আমি এই পরিবর্তন করেছি।
লংগায়ারকে

6

git branch --set-upstream <branch> origin/<branch> কমপক্ষে ১.৮.২.৩ (আমার সংস্করণ) হিসাবে অবনতি হয়েছে।

git branch --set-upstream-to=origin/<branch> <branch>পরিবর্তে ব্যবহার করুন।


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