কোথায় একটি শাখা ঠেলাতে জিজ্ঞাসা করা থেকে Magit রোধ করবেন?


10

স্ট্যাটাস বাফার থেকে কল magit-push-currentকরার সময়, যখন আমাকে প্রথম প্রবাহটি সেট করা না হয়, তখন প্রথমবারে কোথায় শাখাটি পুশ করতে হবে তা জিজ্ঞাসা করুন।P PMagit 2.1.0

এটি পূর্বে যেমন ব্যবহার করত তেমনি কীভাবে এটি স্বয়ংক্রিয়ভাবে নাম তৈরি করতে দেয়?


2
আপনি যদি না জানেন তবে স্বয়ংক্রিয়ভাবে উত্পাদিত নামটি সমাপ্তির বিকল্পগুলির মধ্যে একটি। সুতরাং, প্রথমবার some-branch-nameআপনি যখন originরিমোটে চাপ দেবেন , আপনি সম্ভবত কেবল টাইপ করতে পারেন o TAB s TABএবং আপনি নিজের নামটি পেয়ে যাবেন।
মালবারবা

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

উত্তর:


8

আপডেট: নীচে উল্লিখিত "পুশ শাখা" এখন দ্বারা প্রয়োগ করা হয়েছে more আরও তথ্যের জন্য শাখা সম্পর্কিত ডকুমেন্টেশন দেখুন।

আপনাকে একবার উজানের শাখা সেট করতে হবে। একবার আপনি যে কাজ করেছেন P Pযে push কর্মের এবং আপনি অবস্থা বাফারে unpulled এবং unpushed পরিবর্তনের তালিকা পাবেন (প্রদত্ত থেকে থাকে)।

প্রবাহ শাখা সেট করার বিভিন্ন উপায় রয়েছে। আপনি ব্যবহার করতে পারে --set-upstreamধাক্কা পপআপ থেকে সুইচ: P -u P। অথবা কমান্ড যা মূল প্রজেক্টের সেট করে এবং অন্য কিছুই না ব্যবহার করুন: b u

এছাড়াও নতুন নতুন শাখা তৈরি করার সময় Magit এখন স্বয়ংক্রিয়ভাবে প্রবাহ শাখা সেট করে, প্রদত্ত "শুরুর পয়েন্ট" একটি শাখার নাম। এটি স্থানীয় এবং দূরবর্তী "আপস্ট্রিম" এর জন্য কাজ করে। তবে মনে রাখবেন যে আপনি যদি কোনও স্থানীয় শাখাটিকে প্রথম পয়েন্ট হিসাবে বেছে নেন তবে তা আপনাকে ঠেলাঠেলি করতে সহায়তা করবে না। বর্তমান সংগ্রহস্থল থেকে বর্তমান সংগ্রহশালায় ধাক্কা দেওয়া স্পষ্টতই বোধগম্য নয় এবং এটি অনুমোদিত নয়।

সুতরাং যখন "আপস্ট্রিম" শাখাটি বাস্তবে অন্য একটি স্থানীয় শাখা হয়, তারপরে P Pএমন আচরণ করে যে কোনও প্রবাহ শাখা কনফিগার করা হয়নি এবং ঠিক এর মতো আচরণ করে P e। কোনও প্রবাহই মোটেও কনফিগার করা না থাকলে একই অবস্থা।

এটি গিটে সীমাবদ্ধতার কারণে: কেবলমাত্র একটি অন্য শাখাকে কিছু শাখার সাথে সংযুক্ত করতে পারে এবং সেই শাখাটিকে তারপরে "উজানের শাখা" বলা হয়। কমপক্ষে একটি "উজান" এবং একটি "প্রকাশ" শাখা থাকলে এটি আরও ভাল। আমি শেষ পর্যন্ত Magit এ বাস্তবায়ন করার ইচ্ছা করি। সংখ্যা # 1485 দেখুন

সুতরাং আপনি যদি ঠিক সাথে চাপ দিতে সক্ষম হতে চান P Pতবে "আপস্ট্রিম" শাখাটি অবশ্যই "উত্স / মাস্টার" হতে হবে, "মাস্টার" নয়।


আমি একটি ধাক্কা বৈকল্পিক যোগ করার বিষয়ে বিবেচনা করছি যা সর্বদা git pushকোনও যুক্তি ছাড়াই চলমান । এটি কী করে তা কেবল গিট কনফিগারেশনের উপর নির্ভর করে।


আমি masterব্রাঞ্চ করেছি এবং এটি প্রবাহ স্থাপন করে নি, আমি কি সম্ভবত শাখাটি origin/masterউজানটি স্বয়ংক্রিয়ভাবে সেট করতে পারি?
z1naOK9nu8iY5A

আপডেট উত্তর দেখুন।
তারসিয়াস

1
উজান হিসাবে origin/masterসেট থেকে শাখা origin/master, তবে আমি origin/branch-nameউজান প্রবাহের মতো আশা করতাম ।
z1naOK9nu8iY5A

যদি আপনি এটি চান তবে ধাক্কা দেওয়ার সময় এটি করা ভাল। P -p P <... completion ...> RETনোট যে origin/branch-nameএকটি সমাপ্তি প্রার্থী হিসাবে দেওয়া হয়, যাতে আপনি এটি টাইপ করতে হবে না।
তারসিয়াস

2
যখন আপনি গিটফ্লো ব্যবহার করছেন এবং বৈশিষ্ট্য অনুসারে একটি শাখা সহ কোড পর্যালোচনার জন্য অনুরোধগুলি টানছেন তখন এটি বেদনাদায়ক হয় কারণ আপনি সাধারণত কেবল একবারই চাপ দেন এবং স্থানীয় শাখার মতো একই নামে একটি দূরবর্তী শাখা তৈরি করা সর্বদা। কোনও পৃথক নামযুক্ত শাখায় ঠেলাঠেলি কোড পর্যালোচনার কাছাকাছি হবে।
ব্যারি কেলি

3

আমি নিম্নলিখিত পরামর্শটি ব্যবহার করি যা --set-upstreamবর্তমান শাখায় এখনও একটি প্রবাহ নেই যখন স্বয়ংক্রিয়ভাবে সক্ষম হয়:

(defun magit-push-arguments-maybe-upstream (magit-push-popup-fun &rest args)
  "Enable --set-upstream switch if there isn't a current upstream."
  (let ((magit-push-arguments
         (if (magit-get-remote) magit-push-arguments
           (cons "--set-upstream" magit-push-arguments))))
    (apply magit-push-popup-fun args)))
(advice-add 'magit-push-popup :around #'magit-push-arguments-maybe-upstream)

আইডো সমাপ্তির সাথে সম্মিলিত এটি এর সাথে একটি নতুন শাখা ঠেলাঠেলি করতে দেয় P P RET:

;; NOTE: requires ido-completing-read+
(setq magit-completing-read-function #'magit-ido-completing-read)

এই এত শান্ত! আপনাকে অনেক ধন্যবাদ!
z1naOK9nu8iY5A

0

আমি কেবল নতুন শাখাটি তৈরি করে b cতারপরে .git/configফাইলটি সম্পাদনা করে origin/branchসমস্ত ম্যাজিট 2 স্টাফ দিয়ে আশেপাশের বান্ধব না করে, যা কোনওভাবেই কাজ করছে বলে মনে হচ্ছে না।

পরিবর্তন:

[branch "fix_something"]
  remote = .
  merge = refs/heads/master

প্রতি

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

এটি কাজ করে, যদিও আমি এখনও Magit2 তে একটি মূল সংমিশ্রণটি পাই নি যা একই জিনিসটি সম্পাদন করে। রিমোট সেট করার চেষ্টা করা কাজ করে না কারণ এটি এখনও উত্সে নেই।


1
প্রবাহটি ব্যবহার করে সেট করা যেতে পারে bu। তবে এটি ব্যবহার করে git branch --set-upstream-toএবং আপনি জানেন যে গিট আপস্রোম হিসাবে অস্তিত্বহীন শাখা সেট করতে পারে না এবং তাই ম্যাজিটও তা করতে পারে না।
তারসিয়াস

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