আমার টানার অনুরোধটি একীভূত হয়ে গেছে, এর পরে কী করব?


112

আমি সম্প্রতি গিটহাবের একটি প্রকল্পে অংশ নিয়েছি। আমি নিম্নলিখিতগুলি করেছেন:

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

এটি আমার প্রথমবার ছিল যখন আমি অন্যের কোডে কমিট করেছিলাম তাই আমি কী করব জানি না। এখন আমার টানার অনুরোধটি লেখক দ্বারা মূল রেপো / প্রকল্পে একীভূত হয়েছে।

এরপর আমার কি করা উচিৎ? আমার শাখাটি মুছে ফেলা উচিত? আমি শাখাটি মার্জ করা উচিত? আর কিছু?


অতিরিক্ত তথ্য:

মূল প্রকল্পটির একটি শাখা রয়েছে has

মূল রেপোতে সর্বশেষ আপডেটগুলি পাওয়ার জন্য আমার কাছে একটি প্রবাহ সেট রয়েছে। (আমি এটি এটি করেছিলাম) :

git remote add upstream https://path/to/original/repo.git

এবং আমি এই মত আপডেট পেতে:

git fetch upstream

12
ঘেহে, আপনি একমাত্র লড়াই করছেন না: ইউটিউব ভিডিও :)
অ্যানি

উত্তর:


65

এর পরে কী করবেন: নতুন বৈশিষ্ট্যগুলি অবদান রাখা বা তাদের নিজস্ব উত্সর্গীকৃত শাখাগুলিতে অন্যান্য বাগগুলি ঠিক করা (কেবলমাত্র আপনার কাঁটাচামচায় চাপ দেওয়া)।

মানে আপনার কাঁটাচামচ স্থির থাকে, তবে আপনার কাঁটাচামচের শাখাগুলি আসতে এবং যেতে পারে।

আপনি যদি আরও অবদান রাখার পরিকল্পনা না করেন তবে আপনি কাঁটাচামচটি সরিয়ে ফেলতে পারেন, তবে এটি 'আপনি যে ভাণ্ডারগুলিতে অবদান রাখবেন' তে সংশ্লিষ্ট এন্ট্রি সরিয়ে ফেলবে

এটি সহজ:

  • আপনার fixশাখাটি মুছে ফেলুন (আসলে এটি এখন আপনার জন্য মুছে ফেলা হয়েছে ) আপনার কাঁটাচামচে (এবং আপনার স্থানীয় ক্লোনযুক্ত রেপোতে: " স্থানীয়ভাবে এবং দূরবর্তীভাবে " একটি গিট শাখা মুছুন "দেখুন)
  • git pull upstream master(যদি masterসেই শাখায় যেখানে আপনার ফিক্সটি সংহত করা হয়েছিল: মার্জটি দ্রুত-অগ্রসর হওয়া হবে): এই মুহুর্তে কোনও পুনর্বাসনের প্রয়োজন নেই।
  • আপনার আপডেট হওয়া স্থানীয় master(এখনকার সর্বশেষের সাথে upstream master) শীর্ষে একটি স্থির শাখা পুনরায় তৈরি করুন ।

যাইহোক, ভবিষ্যতের কোনও পুল অনুরোধ জমা দেওয়ার আগে এক পদক্ষেপটি কখনও ভুলে যাবেন না :

fixআপস্ট্রিম গন্তব্য শাখা থেকে প্রথমে আপনার বর্তমান শাখাটি ( ) পুনরায় চালু করুন

( upstreamআসল রেপো হ'ল যা আপনি আঁকেন: দেখুন " গিথুবে উত্স এবং উজানের মধ্যে পার্থক্য কী ")

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

অন্য কথায়, upstreamআপনি স্টাফ ফিক্সিংয়ে ব্যস্ত থাকাকালীন বিবর্তন করতে পারেন (এটিতে নতুন কমিটগুলি চাপানো হবে)। আপনার প্রতিশ্রুতি সর্বশেষের সাথে সামঞ্জস্যপূর্ণ কিনা তা নিশ্চিত করার জন্য আপনাকে আপস্ট্রিম থেকে সেই সর্বশেষ কাজের উপরে আপনার ফিক্সগুলি পুনরায় খেলতে হবে upstream


ওপি সন্তোষ কুমার জিজ্ঞেস মন্তব্য :

আমি টানছি এবং upstreamমাস্টার থেকে একীভূত করেছি , এখন কি?

আপনার সাম্প্রতিক পুল অনুরোধের পরে যদি আপনি কোনও নতুন সমাধান না করেন তবে উপরে দেখুন ( fixআপনার আপডেটের উপরে একটি নতুন শাখা মুছুন এবং পুনরায় তৈরি করুন master)।

আপনার টানার অনুরোধের পরে যদি আপনি আর কোনও কাজ করেন upstreamতবে আমি নতুন টানতে অনুরোধ জানাতে চাইলে আমি মার্জ হয়ে যাব না : আমি টানুন এবং পুনর্বাসনা করব :

git pull --rebase upstream master

এইভাবে, আমার সমস্ত নতুন স্থানীয় কাজ সর্বাধিক সাম্প্রতিক upstream masterকমিট (আমার স্থানীয় রেপোতে আনা হয়েছে) শীর্ষে পুনরায় প্লে করা হয়েছে , মনে করুন যে masterএটি আমার লক্ষ্য ভবিষ্যতের অনুরোধকে সংহত করবে এমন টার্গেট শাখা।

তারপরে আমি আমার স্থানীয় কাজটি ' origin' এর দিকে ঠেলাতে পারি, এটি আমার গিটহাবের কাঁটাচামচ upstream
এবং গিটহাবের আমার কাঁটাচামচা থেকে, আমি নিরাপদে একটি অনুরোধ করতে পারি, এটা জেনেও যে এটি upstreamকোনও সংবিধানের সমাধানের প্রয়োজন ছাড়াই কেবল নতুন কমিট যুক্ত করবে : রেপোগুলিতে এই নতুন কমিটগুলি মার্জ করার upstreamঅর্থ একটি সহজ দ্রুত-ফরওয়ার্ড সংযুক্তি হবে।


একটি git pull --rebaseযার উপরে আপনি যে শাখাটি পুনরায় চালু করতে চান তার নির্দিষ্টকরণ ছাড়াই আপনার (বর্তমানে চেক আউট) fixশাখা কাজ করবে না:

এটি ( git pull --rebase) বলেছেন:

You asked to pull from the remote '`upstream`', but did not specify a branch. 

আমি শেষ পর্যন্ত মাস্টার সংযুক্ত করা উচিত? এবং এটি কী করবে ?, এটি আমার fixশাখাটি মুছে ফেলবে ?

হ্যাঁ, আপনি সেই শাখাটি নির্দিষ্ট করতে পারবেন যা উদাহরণস্বরূপ ' master' টান অনুরোধের লক্ষ্য হবে be
এটি আপনার fixশাখাটি মুছে ফেলবে না , তবে masterআপনার রেপোতে আনীত উজানের উপরে এটি পুনরায় খেলবে।


আপনি উপরের অংশ থেকে রিবেসটি ব্যাখ্যা করতে পারেন ?
সন্তোষ কুমার

@SantoshKumar আপনি আপনার কাঁটাচামচ ঠেলে এবং আপনার খিঁচ অনুরোধ করার আগে মূল রেপো (এখানে মূল প্রজেক্টের যেমন রেফারেন্সড) উপরে আপনার স্থানীয় করে রি-বেসের ফলে প্রয়োজন: দেখুন stackoverflow.com/questions/9257533/...
VonC

হ্যাঁ, আমি জানি আমি একটি প্রাথমিক প্রশ্ন জিজ্ঞাসা করছি । আমি টানতে পেরেছি এবং উজান থেকে মাষ্টারে মিশেছি, এখন কী?
সন্তোষ কুমার

@ সন্তোষকুমার এটি একটি ভাল প্রশ্ন। আমি ঠিকানার উত্তরটি সম্পাদনা করেছি। "ওপি সন্তোষ কুমার মন্তব্যগুলিতে জিজ্ঞাসা করেছেন এর জন্য দেখুন: ..."
ভোনসি

যে বলে: You asked to pull from the remote 'upstream', but did not specify a branch.আমি masterশেষ পর্যন্ত সংযোজন করা উচিত ? এবং এটি কী করবে ?, এটি কি আমার ফিক্স শাখাটি মুছে ফেলবে ?
সন্তোষ কুমার

18

প্রথমে গিথুবের একটি প্রকল্পে আপনার প্রথম অবদানের জন্য অভিনন্দন।

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

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