নির্দিষ্ট শাখায় গিট ধাক্কা


106

এই প্রশ্নটি পড়ার পরেও: গিট-পুশ-কারেন্ট-ব্রাঞ্চ , আমার গিট পুশ কমান্ডটি কীভাবে লিখতে হবে তা নির্ধারণ করতে আমার এখনও অসুবিধা হচ্ছে। প্রশ্ন লিঙ্কে উল্লিখিত হিসাবে, এটি ডকুমেন্টেশন থেকে পরিষ্কার নয়।

আমি আমার 'রিয়েল ওয়ার্ল্ড' উদাহরণটি ব্যবহার করতে চাই। আমি যখন git statusআমার শাখার শীর্ষ স্তরে একটি কমান্ড করি তখন নীচের বিষয়গুলি :

শাখায় amd_qlp_tester

আপনার শাখা 5 টি কমিট দ্বারা 'উত্স / amd_qlp_tester' এর চেয়ে এগিয়ে।

ইত্যাদি ...

সুতরাং আমার শাখার নাম amd_qlp_testerতবে এটি প্রধান শাখা থেকে "ব্রাঞ্চ" ছিল (যদি আমার এসভিএন ব্যাকগ্রাউন্ডের কারণে শর্তগুলি ভুল থাকে তবে)। তবে এর পরেও নাম রয়েছে আরিগিন / এএমডি_ক্ল্যাপ_পরে

তাহলে আমি আমার পুশ কমান্ডটি কীভাবে বাক্য দেব?

এটি কি নিম্নলিখিত কোনও:

git push origin/amd_qlp_tester
git push origin amd_qlp_tester
git push amd_qlp_tester
git push origin
git push

উত্তর:


94

git push origin amd_qlp_testerআপনার জন্য কাজ করবে। আপনি যদি কেবল টাইপ করেন git pushতবে বর্তমান শাখার রিমোটটি হ'ল ডিফল্ট মান।

পুশের সিনট্যাক্সটি দেখতে এমন দেখাচ্ছে - git push <remote> <branch>। আপনি যদি আপনার রিমোট ইন .git/configফাইলটি দেখেন তবে আপনি একটি এন্ট্রি দেখতে পাবেন [remote "origin"]যা ভান্ডারের ইউআরএল নির্দিষ্ট করে। সুতরাং, কমান্ডের প্রথম অংশে আপনি গিটকে এই প্রকল্পের সংগ্রহস্থল কোথায় পাবেন তা বলবেন এবং তারপরে আপনি কেবল একটি শাখা নির্দিষ্ট করবেন।


এর জন্য ধন্যবাদ :), আপনি কি ব্যাখ্যা করতে পারবেন যে যখন এই দ্বিখণ্ড স্থিতির বিবরণটি পথ হিসাবে প্রদর্শিত হয়, অর্থাত্ কেন তা origin amd_qlp_testserনয়origin/amd_qlp_tester
কোড_ফড্ডার

ডিফল্ট "রিমোট" বর্তমান শাখার কনফিগারেশনের উপর ভিত্তি করে (এই ক্ষেত্রে এটি প্রকৃতপক্ষে হবে origin)। শাখা (এএস) ডিফল্ট (গিটের বর্তমান সংস্করণগুলিতে) চাপ দেওয়ার জন্য :যদি আনসেট না করা হয়, যার অর্থ matching, তবে ভবিষ্যতে এটি পরিবর্তিত হওয়ার কথা।
torek

আমি কিছুটা বিভ্রান্ত হয়েছি, আমি v2.10 ব্যবহার করছি, যখন আমি git pushএটি টাইপ করি তখন আপনি যা বলেছিলেন তার বিপরীতে সমস্ত ট্র্যাক করা শাখাগুলি ঠেলে দেওয়ার চেষ্টা করে ("বর্তমান শাখার দূরবর্তীটি ডিফল্ট মান")।
রবার্তো

গিট ২.x এর simpleধাক্কা কৌশল ব্যবহার করা উচিত যার অর্থ কেবলমাত্র বর্তমান শাখাকে ধাক্কা দেবে। blogs.atlassian.com/2014/06/happened-git-2-0-full-goodies
পেটর মেনসিক

fatal: Couldn't find remote ref branch-name-here
ডগ 65536

121

যদি আপনার স্থানীয় শাখা এবং দূরবর্তী শাখা একই নাম হয় তবে আপনি কেবল এটি করতে পারেন:

git push origin branchName

যখন আপনার স্থানীয় এবং দূরবর্তী শাখার নাম আলাদা হয় তবে আপনি কেবল এটি করতে পারেন:

git push origin localBranchName:remoteBranchName

এটি খুব সহায়ক, খুঁজে পাওয়া কঠিন ছিল :)
পে ড্রো

হ্যাঁ, আপনি ঠিক বলেছেন, মনে রাখাও কঠিন!
ইমরানমদবার

8

আপনি যে প্রশ্নের সাথে যুক্ত হয়েছেন তার উত্তরগুলি হ'ল গিটটি কনফিগার করার বিষয়ে যাতে আপনি খুব ছোট git pushকমান্ড সন্নিবেশ করতে পারেন এবং আপনি যা চান তা করতে পারেন have কোনটি দুর্দান্ত, যদি আপনি কী জানেন এবং কীভাবে গিট-এসে এটিকে বানান করতে হয় তবে আপনি গিটে নতুন! :-)

আপনার ক্ষেত্রে, পেটর মেনসিকের উত্তরটি হ'ল (ভাল, "ক") সঠিক। কারণটা এখানে:

নামক "দূরবর্তী" (যেমন, ) খুঁজে পেতে আপনার ফাইলে আশেপাশে কমান্ডটি শিকড় দেয় । কনফিগার ফাইলের তালিকা:git push remote.git/configorigin

  • যেখানে (URL- ভিত্তিতে) দূরবর্তী "জীবন" থাকে (যেমন, )ssh://hostname/path
  • যেখানে ধাক্কা যায়, যদি আলাদা হয়
  • কী ধাক্কা খায়, যদি আপনি না বলেন কী শাখা (গুলি) টিপতে হবে
  • আপনি চালানোর সময় কি আনা হয় git fetch remote

আপনি যখন রেপো প্রথম ক্লোন করেছিলেন — যখনই ছিল — এইগুলির মধ্যে কিছুর জন্য ডিফল্ট মান সেট করে। URL টি যাই হোক না কেন আপনি থেকে ক্লোন এবং বাকি, যদি সেট থাকে বা সেট, সকল "যুক্তিযুক্ত" অক্ষমতা ... অথবা, হুম, হয় হয় তারা?

এগুলির সাথে সমস্যাটি হ'ল সময়ের সাথে সাথে লোকেরা "যুক্তিসঙ্গত" কী তা পরিবর্তন করেছে। সুতরাং এখন (গিটের আপনার সংস্করণ এবং আপনি বিশদগুলিকে কনফিগার করেছেন কিনা তার উপর নির্ভর করে), গিট ভবিষ্যতে পরিবর্তিত ডিফল্টগুলি সম্পর্কে প্রচুর সতর্কতা মুদ্রণ করতে পারে। "ধাক্কা দেওয়ার জন্য" শাখার নাম যুক্ত করা - amd_qlp_tester- (1) এটি বন্ধ করে দেয় এবং (2) ঠিক সেই একটি শাখা ঠেলে দেয়।

আপনি যদি আরও সুবিধাজনকভাবে চাপ দিতে চান তবে আপনি এটি দিয়ে করতে পারেন:

git push origin

অথবা এমনকি:

git push

তবে এটি আপনার যা চায় তা নির্ভর করে যে আপনি "প্রারম্ভিক গিট লেখক" এর সাথে সম্মত হন কিনা তার উপর নির্ভর করে যে মূল খেলাপি যুক্তিসঙ্গত হয় না, বা "পরে গিট লেখক" যে মূল ডিফল্ট যুক্তিসঙ্গত নয়। সুতরাং, যখন আপনি সমস্ত কনফিগারেশন স্টাফ (শেষ পর্যন্ত) করতে চান, আপনি যে প্রশ্নটি যুক্ত করেছেন সেগুলি (এবং উত্তর) দেখুন।

origin/amd_qlp_testerপ্রথম স্থানে থাকা নামটির জন্য : এটি আসলে একটি স্থানীয় সত্তা (আপনার রেপোর ভিতরে রাখা নাম), যদিও এটি "দূরবর্তী শাখা" নামে পরিচিত। এটি "যেখানে amd_qlp_testerআছে" সেখানে গিটের সেরা অনুমান । গিট এটি যখন আপডেট করতে পারে


4
ব্যাখ্যার জন্য ধন্যবাদ, আমি মনে করি আমার এখন এটি পরিষ্কার হয়ে গেছে। আমি সুনির্দিষ্ট হতে চাই তাই আমার git push origin amd_qlp_testerআরও উন্নত জিনিসগুলি না করা পর্যন্ত আমি আটকে থাকব :)
কোড_ফড্ডার

2

আমি একটি আপডেট করা উত্তর যুক্ত করতে চাই - এখন আমি কিছুক্ষণের জন্য গিট ব্যবহার করছি, আমি দেখতে পাচ্ছি যে আমি প্রায়শই কোনও ধাক্কা দেওয়ার জন্য নিম্নলিখিত আদেশগুলি ব্যবহার করি (উদাহরণ হিসাবে মূল প্রশ্নটি ব্যবহার করে):

  • git push origin amd_qlp_tester- originরিমোট-শাখায় ডাকা রিমোটে অবস্থিত শাখায় চাপ দিন amd_qlp_tester
  • git push -u origin amd_qlp_tester- শেষের মতো একই, তবে স্থানীয় শাখাকে দূরবর্তী শাখায় সংযুক্ত করার জন্য প্রবাহটি সেট করে যাতে পরের বার আপনি git push/pullইতিমধ্যে সংযুক্ত না থাকলে কেবলমাত্র ব্যবহার করতে পারেন (কেবল একবার এটি করা দরকার)।
  • git push - একবার আপনি প্রবাহ স্থাপন করার পরে আপনি কেবল এই সংক্ষিপ্ত সংস্করণটি ব্যবহার করতে পারেন।

নোট -u বিকল্পটি এর সংক্ষিপ্ত সংস্করণ --set-upstream- সেগুলি একই।

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