আমি কীভাবে আসল থেকে একটি কাঁটাচামচ পুনরায় সিঙ্ক করতে পারি


33

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

ধন্যবাদ


আমি একটি সহজ নির্দেশ লিখি। এখানে দেখুন: webapps.stackexchange.com/a/58140/63016
ইয়ংজা

2
এখানে এখন একটি অফিসিয়াল ডক রয়েছে যা ভালভাবে সম্পন্ন হয়েছে: help.github.com/articles/sycing-a-fork
Andre Miras

উত্তর:


36

ডিজাইন দ্বারা, একটি প্রকল্প কাঁটাচামচ একটি পৃথক রেপো তৈরি করে যা মূল রেপো পরিবর্তিত হলে আপডেট হয় না। তবে gitম্যানুয়ালি আপডেট করা একে একে সহজ করে তোলে।

আপনার তৃতীয় ভাণ্ডার (আপনার স্থানীয় অনুলিপি যথেষ্ট) সহায়তা প্রয়োজন। 3 টি রেপ রয়েছে:

  • "উজানের": গিথুবে প্রবাহিত প্রকল্পের সংগ্রহস্থল।
  • "উত্স": গিথুবে আপনার কাঁটাচালনার সংগ্রহশালা
  • "স্থানীয়": আপনার কম্পিউটারে আপনার স্থানীয় সংগ্রহস্থল। আমি ধরে নিচ্ছি যে আপনি এটি ব্যবহার করে কাঁটাচামচ ব্যবহার করে তৈরি করেছেন git clone git@github.com:your-username/projectname.gitএবং প্রত্যেকেই শাখা ব্যবহার করছে master

ধরে নেওয়া বর্তমানে "উত্স" এবং "স্থানীয়" একই অবস্থায় রয়েছে এবং "আপস্ট্রিম" 1 বা ততোধিক কমিট (মার্জ এবং পরবর্তী কোনও পরিবর্তন) দ্বারা এগিয়ে রয়েছে by

প্রথমে একটি গিট দূরবর্তী হিসাবে প্রবাহ প্রকল্প যুক্ত করুন :

git remote add upstream https://github.com/upstream-username/projectname.git

তারপরে রিমোটের শাখা থেকে আপনার স্থানীয় সংগ্রহস্থলের বর্তমান ( ) শাখায় পরিবর্তনগুলি টান (অর্থ আনুন এবং তারপরে স্বয়ংক্রিয়ভাবে মার্জ করুন ):mastermaster

git pull upstream master

এখন আপনার স্থানীয় সংগ্রহস্থলটি সিঙ্কে রয়েছে upstream। অবশেষে, আপনার স্থানীয় রেপোটি আপনার গিথুব কাঁটাতে চাপ দিন:

git push origin master

এখন সবকিছু সিঙ্কে রয়েছে।


2
অনেক অনেক ধন্যবাদ .. এটি একটি লজ্জার বিষয় যে এটি ওয়েব ইন্টারফেসে এটি করা সম্ভব নাও হতে পারে ..
নিষিদ্ধ

1
ওয়েব ইন্টারফেসে এটি সত্যই সম্ভব: ওয়েবঅ্যাপস.স্ট্যাকেক্সেঞ্জাও.এ
শে

Yeehaw! আমি এই স্পষ্ট তথ্য সন্ধান করার চেষ্টা করে আমার চুল ছিঁড়ে যাচ্ছিলাম। ভাগ করে নেওয়ার জন্য ধন্যবাদ!
পেপলুয়ান

... তবে দয়া করে উত্তরের মন্তব্যগুলি একবার দেখুন, প্রমাণ করুন যে ওয়েবের মাধ্যমে
রেসিঙ্ক

যখন আপনি টান পরে "ইতিমধ্যে আপ টু ডেট" বলছেন তখন আপনি কী করবেন, তবে তা সম্ভবত নেই? (এমন একটি ফাইল রয়েছে যা আমি সমস্ত উপ-ডিরেক্টরিতে পরিবর্তন করেছি এবং আমার অন্য কোনও ফাইলে কোনও পার্থক্য হওয়া উচিত নয়, তবে আমি করি)
রবার্তো টমস


0

আমি এই উত্তরটি মূল উত্তরটির পরিপূরক হিসাবে খুঁজে পেয়েছি কারণ এটি কেবল একটি শাখা (মাস্টার) সিঙ্ক করার সাথে সম্পর্কিত। তদ্ব্যতীত, যদি আপনার কাঁটাচামচ থেকে শাখাটি উজানের উপর তৈরি করা হয় তবে এটি আপনার কাঁটাচামচ তৈরি করতে এটি আরও কিছুটা যুক্ত।

সংক্ষিপ্ত উত্তরটি হ'ল, আপস্ট্রিম সংগ্রহস্থলের প্রতিটি শাখার সাথে আপনার কাঁটাচামচ আপডেট করতে, এই আদেশটি কার্যকর করুন।

for branch in $(git ls-remote --heads upstream|sed 's#^.*refs/heads/##'); do git push origin refs/remotes/upstream/$branch:refs/heads/$branch; done

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

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