আপনি কীভাবে কেবল একটি একক গিট শাখা (এবং অন্য কোনও শাখা) চাপবেন না?


247

আমি একটি স্থানীয় গিট সংগ্রহস্থল নিয়ে কাজ করছি। দুটি শাখা আছে, masterএবং feature_x

আমি feature_xদূরবর্তী রেপোতে চাপ দিতে চাই , তবে আমি masterশাখায় পরিবর্তনগুলি ঠেকাতে চাই না ।

git push origin feature_xআমার feature_xশাখা থেকে কোনও ( feature_xশাখা ইতিমধ্যে দূরবর্তীটিতে বিদ্যমান) কাজ করবে?

আমি এটি আমার বাক্সে পরীক্ষা করতে চাই না, কারণ আমি এই মুহুর্তে মাস্টারকে ঠেলে দিতে পারি না।


এখানে একবার দেখুন: রিমোট এবং এখানে: গিথুবকে একটি শাখা চাপুন যাতে মনে হয় এটি কার্যকর হবে।
আল।

উত্তর:


376

হ্যাঁ, কেবল নিম্নলিখিতটি করুন

git checkout feature_x
git push origin feature_x

54
আধুনিক গিটের সাহায্যে আপনি কেবল "গিট পুশ অরিজিন হেড", বা "গিট পুশ হেড" কেবলমাত্র চেক-আউট ব্রাঞ্চকে চাপ দিতে সক্ষম হবেন।
জাকুব নরবস্কি

2
বৈশিষ্ট্য_এক্সে চেকআউট করা কি প্রয়োজনীয়?
এইচডি

5
হ্যাঁ, কারণ আপনি যদি মাস্টার হন তবে এটি স্থানীয় মাস্টার শাখাটিকে দূরবর্তী বৈশিষ্ট্য_এক্স শাখায় ঠেলে দেওয়ার চেষ্টা করবে। প্রথমে চেকআউট না করতে আপনাকে "গিট পুশ অরিজিন ফিচার_এক্স: ফিচার_এক্স" করতে হবে
সিপিজলিকিউর

1
@ cpjolicoeur আমি অন্যান্য প্রশ্নে দেখেছি (যেমন: এখানে ) তারা করছে git push -u origin <branch-name>। তবে আপনি এটি উল্লেখ করেননি। এটা কি দরকারি ?
11:25

3
@ মিস_আর -uএকটি git-pushকমান্ডের বিকল্পটি ব্রাশটিকে স্রেফ ধাক্কা দেওয়ার জন্য প্রবাহের রেফারেন্স সেট করবে। এটি git-pullভবিষ্যতে সেই শাখার মতো জিনিসগুলি ইতিমধ্যে জেনে রাখবে যে কোন শাখাটি নির্দিষ্ট করে না রেখে সেখান থেকে টানতে হবে। এটি একটি একক শাখাকে ধাক্কা দেওয়ার বিকল্প হিসাবে প্রয়োজন হয় না, তবে এটি ব্যাপকভাবে ব্যবহৃত হয় কারণ প্রচুর লোকেরা স্থানীয় শাখাটিকে তারা যে দূরবর্তী শাখায় চাপ দিচ্ছে তা ট্র্যাক করতে চায়।
সিপিজলিকিউর

74

ডিফল্টরূপে git pushসমস্ত দূরবর্তী শাখা আপডেট করে। তবে আপনি কেবল বর্তমান শাখাটিকে উজানের দিকে আপডেট করতে গিটটি কনফিগার করতে পারেন।

git config push.default upstream

এর অর্থ আপনি যখন গিট পুশ করবেন তখন গিটটি কেবলমাত্র বর্তমান (চেক আউট) শাখা আপডেট করবে।

অন্যান্য বৈধ বিকল্পগুলি হ'ল:

  • nothing: কোনও রেস্পপেক স্পষ্টভাবে না দেওয়া পর্যন্ত কোনও কিছুই (ত্রুটিযুক্ত) ঠেলাবেন না । এটি মূলত এমন লোকদের জন্য যারা সর্বদা স্পষ্ট হয়ে ভুল এড়াতে চান for
  • matching: উভয় প্রান্তে একই নামযুক্ত সমস্ত শাখা পুশ করুন। (ভের 1.7.11 এর পূর্বে ডিফল্ট বিকল্প)
  • upstream: বর্তমান শাখাটিকে এর উজানের শাখায় ঠেলাও। এই মোডটি তখনই বোধগম্য হয় যদি আপনি একই সংগ্রহস্থলের দিকে চাপ দিচ্ছেন আপনি সাধারণত (যেমন কেন্দ্রীয় কার্যপ্রবাহ ) থেকে টানবেন । স্থানীয় এবং দূরবর্তী শাখার জন্য একই নাম থাকার দরকার নেই
  • tracking: অবচয়, upstreamপরিবর্তে ব্যবহার করুন।
  • current: প্রাপ্তি শেষে একই নামের প্রত্যন্ত শাখায় বর্তমান শাখাটি পুশ করুন । কেন্দ্রীয় এবং অ-কেন্দ্রীয় উভয় প্রবাহে কাজ করে।
  • simple: [সেন্ট্রালাইজড ওয়ার্কফ্লোতে ভের ১..1.১১ থেকে পাওয়া যায়), upstreamপ্রবাহের শাখার নাম স্থানীয় নাম থেকে আলাদা হলে ধাক্কা দিতে অস্বীকার করার জন্য অতিরিক্ত সুরক্ষার মতো কাজ করুন । কোনও রিমোটের দিকে ধাক্কা দেওয়ার সময় যা আপনি সাধারণত থেকে টানুন এমন দূরবর্তী থেকে পৃথক, হিসাবে কাজ করুন current। এটি সবচেয়ে নিরাপদ বিকল্প এবং নতুনদের জন্য উপযুক্ত। এই মোডটি গিট ২.০ এ ডিফল্ট হয়ে গেছে।

2
ধন্যবাদ, currentআমি যা খুঁজছিলাম, git pushতা fooব্রাঞ্চে ডিফল্টরূপে এটি শাখায় ঠেলে দেবে origin/foo
ডোরিয়ান

@ ডরিয়ান ধন্যবাদ, আমি সম্মত যে currentডিফল্ট হিসাবে আরও বেশি অর্থবোধ করে ।
জোল্টন

@ ডোরিয়ান, @ জোল্টন - আমি মনে করি simpleএকটি ডিফল্ট হিসাবে আরও বোধ করা যায়। আমি 'কখন কী ব্যবহার করব' দিয়ে উত্তরটি আপডেট করেছি। Pls একটি চেহারা আছে।
কার্তিক বোস

1
দ্রষ্টব্য: গিট সংস্করণ 2 সাল থেকে ডিফল্ট মান পরিবর্তিত হয়েছে simple
ডানিজেল

8

কার্তিক বোসের উত্তরের উপরে সামান্য আপডেট - আপনি বিশ্বস্তভাবে গিটটি কনফিগার করতে পারেন, আপনার সমস্ত কর্মক্ষেত্রকে সেভাবে আচরণ করতে প্রভাবিত করতে:

git config --global push.default upstream

আমার পক্ষে বৈধ সেটিং হিসাবে উজানের প্রবণতা স্বীকৃত ছিল না, তার পরিবর্তে 'কারেন্ট' লাগাতে হবে
ফড়িংড়ায়

-2

সুতরাং আসুন আমরা বলি যে আপনার একটি স্থানীয় শাখা ফু আছে, একটি রিমোট নামে পরিচিত এবং একটি দূরবর্তী শাখার উত্স / মাস্টার।

ফু এর বিষয়বস্তুগুলিকে উত্স / মাস্টারে ঠেলাতে আপনাকে প্রথমে এর প্রবাহটি সেট করতে হবে:

git checkout foo
git branch -u origin/master

তারপরে আপনি এই শাখায় ব্যবহার করতে পারেন:

git push origin HEAD:master

শেষ কমান্ডে আপনি ফোওর সাথে উত্স / মাস্টার পুরো ইতিহাস প্রতিস্থাপন করতে - ফোর্স যোগ করতে পারেন।

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