git - আমার গিথুব সংগ্রহশালা থেকে ফাইলগুলি টেনে আনার চেষ্টা করা হচ্ছে: "সম্পর্কহীন ইতিহাসকে একীভূত করতে অস্বীকৃতি"




github git-pull (5)

আপনার শাখায় - মাস্টার বলুন, সম্পর্কযুক্ত ইতিহাস টানুন এবং মঞ্জুরি দিন

git pull origin master --allow-unrelated-histories

আমার জন্য কাজ করেছেন।

আমি গিট শিখছি, এবং আমি গিট সম্প্রদায়ের বইটি অনুসরণ করছি।

পূর্বে (বহুদিন আগে) আমি কিছু ফাইল সহ গিথুবে একটি পাবলিক স্টোর তৈরি করেছি। এখন আমি আমার বর্তমান কম্পিউটারে একটি স্থানীয় গিট সংগ্রহস্থল স্থাপন করেছি এবং কিছু ফাইল প্রতিশ্রুতিবদ্ধ করেছি। তারপরে আমি আমার গিথুব পৃষ্ঠায় একটি রিমোট পয়েন্টিং যুক্ত করেছি:

[[email protected] c]# git remote add learnc https://github.com/michaelklachko/Learning-C

এটি সফল বলে মনে হয়েছিল:

[[email protected] c]# git remote show learnc
* remote learnc
  Fetch URL: https://github.com/michaelklachko/Learning-C
  Push  URL: https://github.com/michaelklachko/Learning-C
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (local out of date)

এখন আমি আমার কম্পিউটারে গিথুব রেপো থেকে ফাইলগুলি ডাউনলোড করতে চাই। আমি এটা করেছি:

[[email protected] c]# git fetch learnc
[[email protected] c]# git merge learnc/master
warning: refname 'learnc/master' is ambiguous.
Already up-to-date.

তবে আমি আমার স্থানীয় ডিরেক্টরিতে কোনও নতুন ফাইল দেখতে পাচ্ছি না। সেগুলি আমি কীভাবে পেতে পারি?

আমি এটি করার চেষ্টাও করেছি:

[[email protected] c]# git pull learnc master
From https://github.com/michaelklachko/Learning-C
 * branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories

বিটিডাব্লু, স্থানীয়ভাবে আমি মাস্টার শাখায় আছি (অন্য কোনও শাখা নেই):

[[email protected] c]# git status
On branch master
nothing to commit, working directory clean


যখন আমি --allow-unrelated-histories ব্যবহার করি, তখন এই আদেশটি অনেকগুলি দ্বন্দ্ব তৈরি করে। ফাইলগুলিতে দ্বন্দ্ব ছিল যা আমি এমনকি কাজ করি নি। " Refusing to merge unrelated histories" ত্রুটিটি পেতে, আমি নিম্নলিখিত পুনরায় কমান্ডটি ব্যবহার করেছি:

git pull --rebase=preserve --allow-unrelated-histories

এটির পরে প্রতিশ্রুতিবদ্ধ বার্তাটি দিয়ে অনির্দিষ্ট পরিবর্তনের প্রতিশ্রুতি দিন। অবশেষে, নিম্নলিখিত কমান্ডটি চালান:

git rebase --continue

এর পরে, আমার কার্যকরী অনুলিপিটি রিমোট কপির সাথে আপ টু ডেট ছিল এবং আমি আমার পরিবর্তনগুলি আগের মতো ঠেলাতে সক্ষম হয়েছি। টানানোর সময় আর কোনও সম্পর্কযুক্ত ইতিহাসের ত্রুটি নেই।


যদি এক প্রান্তে উল্লেখযোগ্য ইতিহাস না থাকে (যদি গিথুব প্রান্তে এটি কেবলমাত্র একমাত্র রেডমে কমিট) থাকে তবে আমি প্রায়শই আমার স্থানীয় রেপোতে ম্যানুয়ালি কপি করা এবং আমার সংস্করণটি তৈরি করার জন্য git push -f করতে সহজ মনে করি নতুন রুট কমিট

আমি দেখতে পেয়েছি এটি কিছুটা কম জটিল, কোনও অস্পষ্ট পতাকা মনে রাখার প্রয়োজন নেই, এবং ইতিহাসকে কিছুটা পরিষ্কার রাখুন।


git checkout master
git merge origin/master --allow-unrelated-histories

তাহলে বিরোধের সমাধান করুন

git add -A .
git commit -m "Upload"
git push




git-fetch