গিট: কোড.google.com.com এ প্রধান রেপো থেকে পরিবর্তনগুলি একত্রিত করুন


1

ধরা যাক যে আমি কোডকোটি.কম এ ওয়েব ইন্টারফেস ব্যবহার করে http://code.google.com/p/leveldb এর http://code.google.com/r/kkowalczyk-leveldb একটি ক্লোন তৈরি করেছি

আমার ক্লোনটি তৈরি করার সময় থেকে, http://code.google.com/p/leveldb এ পরিবর্তন করা হয়েছিল এবং আমি এগুলি আমার ক্লোনে মিশে যেতে চাই, অগ্রাধিকার সহকারে ইতিহাস সংরক্ষণ করে (অর্থাত্ আমি আলাদাভাবে ব্যবহার করে তাদের ম্যানুয়ালি মার্জ করতে পারি) / মার্জ টুল, কিন্তু এটি গিট ইতিহাস সংরক্ষণ করে না)।

এই জাতীয় সংশ্লেষ সম্পাদনের জন্য যাদু আদেশগুলি কী কী?

সাধারণত কমান্ডগুলি সরবরাহ করুন। আমি ধারণা করি এটিতে গিট আনার এবং গিট মার্জ এবং দূরবর্তী ট্র্যাকিং শাখাগুলির কিছু সমন্বয় জড়িত থাকবে My আমার সমস্যাটি হ'ল আমি গিট আনতে বা সংহত করার জন্য ম্যান পেজগুলি পড়তে পারি না, আমি কেবল সেগুলি বুঝতে পারি না।

হালনাগাদ:

নীচে অলস ব্যাজারের মন্তব্য দেওয়া, আমি অর্ধেক সমস্যার সমাধান করেছি:

git remote add original https://code.google.com/p/leveldb/

উত্সকে নির্দেশ করে 'আসল' বলে কিছু তৈরি করে। আমি তখন করতে পারি:

git pull original master

যা আমার শাখা মাস্টারের মূল থেকে পরিবর্তনগুলি একত্রিত করে এবং মার্জ করে। আমি তবে এটি 2 টি পৃথক ধাপে করতে চাই: গিট আনতে এবং গিটকে একত্রিত করার জন্য - যা আমার বর্তমান শাখায় মার্জ করার জন্য $

যাইহোক, গিট আনার পরে আসল, আমি জানি না what কিছু কি হবে। আমি যখন গিট শাখা করি - এ, আমি আমার দূরবর্তী মূল মূল জিনিস সম্পর্কিত কোনও কিছুই দেখতে পাচ্ছি না।

কী জিনিসগুলিকে জটিল করে তোলে তা হল মূলতে 3 টি শাখা রয়েছে।

সুতরাং, আসল থেকে প্রাপ্ত তথ্য কোথা থেকে আসে এবং আমার গিট একীভূত করে I কিছুতে এটি কীভাবে উল্লেখ করব?



উত্তর [এখানে পাওয়া] [1], কেবল ছোট গুগলিং। [1]: স্ট্যাকওভারফ্লো
অলস ব্যাজার

আপডেট দেখুন। যারা সত্যিই আমার প্রশ্নের উত্তর দেয় না।
ক্রিজিসটফ কোভালজাইক

উত্তর:


2

আপনি কীভাবে অন্য একটি রিমোট যুক্ত করবেন এবং এটি থেকে সরাসরি টানবেন তা ইতিমধ্যে আপনি খুঁজে পেয়েছেন:

git remote add original https://code.google.com/p/leveldb/
git pull original master

যদি আপনি আনতে চান এবং আলাদাভাবে একত্রীকরণ করতে চান (একক টানুন আদেশের পরিবর্তে; সম্ভবত আপনি এটিটি মার্জ করার আগে কী পরিবর্তন করেছে তা পরীক্ষা করতে চান), তবে আপনি এটি এর মতো করতে পারেন:

git fetch original         # update refs/remotes/original/*
git merge original/master  # merge refs/remotes/original/master

আপনি এই আদেশটিটির সাথে মার্জ করার আগে পরিবর্তনগুলি পরীক্ষা করতে পারেন:

git log --reverse -p original/master@{1}..original/master@{0}

উপরের রেফ্লোগ-ভিত্তিক রিভিশন স্পেসিফিকেশনটি ব্যবহার করার পরিবর্তে, আপনি আনতে গিয়ে আবর্তনের oldhash..newhashসময় যে সংশোধন স্পেসিফিকেশনটি অনুলিপি করেছিলেন তা অনুলিপি করে কাস্ট করতে পারেন could


প্রযুক্তিগতভাবে, git pull remote branchএই জোড় কমান্ডের কাছাকাছি:

git fetch remote-or-url branch  # grab remote branch and put it in FETCH_HEAD
git merge FETCH_HEAD            # merge it

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


0

আপনি একক ভাণ্ডারে একাধিক রিমোট যুক্ত করতে পারেন। একবার আপনি দ্বিতীয় রিমোট পেয়ে গেলে, আপনি কেবল প্রথমটির পরিবর্তনগুলিকে দ্বিতীয়টিতে চাপতে পারেন। উদাহরণ স্বরূপ:

git clone <google_URI>
cd <projdir>
git remote add github <github_URI>
git push github master

এটি আমার প্রশ্নের উত্তর দেয় না - আপডেটটি দেখুন। আমি কী জানতে চাই: গিট রিমোটের পরে গিথুব যোগ করুন <github_URI> গিট ফেচ গিথুব পরে, গিট মার্জ <sth> কি <গীত> একথা ধরে ধরে যে গিথুব রিমোটের 2 টি শাখা রয়েছে, যেমন মাস্টার এবং জয়।
Krzysztof Kawalczyk

নীচে ক্রিসের উত্তর চমকপ্রদ দেখায়: FETCH_HEAD বা মূল / মাস্টার করবে। অথবা আপনি দুজনের যে কোনও একটি থেকে অন্য স্থানীয় শাখা তৈরি করতে এবং সেখান থেকে মার্জ করতে পারেন।
ডিসাইস্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.