উত্তর:
আপনি যদি প্রধান রেপো থেকে সমস্ত বস্তুর সদৃশ করতে চান তবে এটি মূল রেপোর ভিতরে করুন:
git push --all <url-of-bare-repo>
বিকল্পভাবে, খালি রেপোর ভিতরে একটি আনুন:
git fetch <url-of-main-repo>
আপনি একটি টান করতে পারবেন না, কারণ একটি টান একত্রিত হতে চায় HEAD, যা একটি খালি রেপোতে নেই।
ভবিষ্যতে নিজেকে কিছু টাইপ করে বাঁচাতে আপনি এগুলি রিমোট হিসাবে যুক্ত করতে পারেন:
git remote add <whatever-name> <url-of-other-repo>
তাহলে আপনি সহজভাবে করতে পারেন
git push --all <whatever-name>
অথবা
git fetch <whatever-name>
আপনি কী রেপোতে <whatever-name>রয়েছেন তার উপর নির্ভর করে If যদি হয় তবে originআপনি এটি পুরোপুরি ছেড়ে দিতে পারেন।
দাবি অস্বীকার: আমি গিট গুরু নই। আমি যদি কিছু ভুল বলে থাকি তবে আমি আলোকিত হতে চাই!
আপডেট: মন্তব্য পড়ুন!
git-fetch --allখালি সংগ্রহস্থলটির অভ্যন্তর কোনও কাজ করেছি, তখন আমি প্রধান রেপোতে যে আপডেটগুলি করেছি তা আমি দেখতে পাইনি, তবে প্রধান রেপোগুলি দিয়ে যখন তাদের ধাক্কা দিয়ে git push --all <url-of-bare-repo>দেখি তখন আপডেটগুলি দেখতে পাচ্ছি git log। সম্ভবত এর জন্য একটি সহজ ব্যাখ্যা আছে - কেউ কি ব্যাখ্যা করতে পারেন?
git log, খালি রেপোতে এই আপডেটগুলি দেখাবে না। (না হয় git log --allএবং না এমন একটি ওয়ার্কিং রেপো যা খালি রেপো ক্লোন করে তৈরি করা হয়েছিল - হয় git log --allকেবল সেখানে প্রদর্শিত হওয়া নতুন ফাইলগুলির মাধ্যমে বা কেবল দেখানো উচিত)। এটি নিজের জন্য দেখার জন্য একটি দুর্দান্ত দ্রুত পরীক্ষা। বেশিরভাগ ক্ষেত্রে আমি কৌতুহলী যেটি আমি মিস করছি।
git fetch -q origin master:masterআপনার স্থানীয় খালি রেপোর ভিতরে করতে পারেন । এটি গিথুবের মাস্টার শাখা থেকে নতুন জিনিস আনবে এবং এতে আপনার স্থানীয় মাস্টার শাখা আপডেট করবে।
master:masterএগিয়ে যাওয়ার জন্য প্রয়োজনীয়। আমার ক্ষেত্রে সমস্যার কারণে আমি আর আমাদের বেয়ার রেপোতে সংযোগ দিতে পারিনি কারণ গিটটি অনুপস্থিত ছিল। এটি সমাধান না হওয়া পর্যন্ত আমি একটি বিপরীত সুড়ঙ্গ করি এবং ব্যবহার করে কেন্দ্রীয় রেপোতে আনতে: git fetch ssh://localhost:8765/... master:masterএবং এটি কবজির মতো কাজ করে। ধন্যবাদ!
git fetch origin *:*
আমি নিম্নলিখিত কমান্ডটি ব্যবহার করে একটি সংগ্রহস্থল তৈরি করেছি
git clone --bare <remote_repo>
তারপরে আমি থমাসের উত্তরটি ব্যবহার করে খালি ক্লোনটি আপডেট করার চেষ্টা করেছি, তবে এটি আমার পক্ষে কার্যকর হয়নি। আপডেট করার জন্য খালি সংগ্রহস্থলটি পেতে (যা আমি মনে করি লেট_মি_বি জিজ্ঞাসা করছে), আমাকে একটি আয়না সংগ্রহস্থল তৈরি করতে হয়েছিল:
git clone --mirror <remote_repo>
তারপরে আমি মুখ্য সংগ্রহস্থলের আপডেটগুলি পেতে মিররড রিপোজিটরিতে নিম্নলিখিত কমান্ডটি চালাতে পারি:
git fetch --all
আমি এই সমাধানটি পেরিয়ে মিরর এ গিট রিপোজিটরি পড়ে শুনে এসেছি
[remote "origin"]অধ্যায়, অ্যাড fetch = +refs/*:refs/*এবংmirror = true
গ্রেগর থেকে পুনরায় পুনরুত্থানের পাশাপাশি একমাত্র সমাধান git clone --mirrorহ'ল :
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
তারপরে আপনি git fetchএবং আপডেটগুলি দেখতে পাবেন। অদ্ভুত বিষয়টি এটি হ'ল এর আগে, একটি remoteকনফিগার হওয়া সত্ত্বেও এর কোনও শাখা তালিকাভুক্ত নয় git branch -a।
git remote updateকাজ করার অনুমতি দেওয়ার জন্য ক্যাপিস্ট্রানো প্রকল্প / রেপোও এই সেটিংটি ব্যবহার করে ।
--forceএবং প্রয়োজন হতে পারে । --prunegit fetch
ধরে নেওয়া যাক:
$ git clone --bare https://github.com/.../foo.git
সাথে আনুন:
$ git --git-dir=foo.git fetch origin +refs/heads/*:refs/heads/* --prune
দ্রষ্টব্য: --git-dir=foo.gitআপনি যদি cdপ্রথমে ডিরেক্টরিতে যান তবে প্রয়োজন হয় না ।
originএটি সংজ্ঞায়িত না করা হয় তবে আপনি সর্বদা originঅংশটি আপনার মূল সংগ্রহস্থলের পথে / url দিয়ে প্রতিস্থাপন করতে পারেন । উদাহরণস্বরূপ$ git --git-dir=foo.git fetch https://github.com/.../foo.git +refs/heads/*:refs/heads/*
চারপাশে অনেক গণ্ডগোলের পরে আমি খুঁজে পেয়েছি এটি আমার জন্য কাজ করে।
একদা:
git clone --mirror ssh://git@source.address:2000/repo
git remote add remote_site ssh://git@remote_site.address/repo
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
প্রতিবার আমি সিঙ্ক করতে চাই:
cd /home/myhome/repo.git
git --bare fetch ssh://git@source.address:2000/repo
git fetch ssh://git@source.address:2000/repo
git push --mirror remote_site
git config remote.origin.fetch 'refs/heads/*:refs/heads/*') কী। ভাল উত্তর, ধন্যবাদ!
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'উত্তর। এই কমান্ডটি আঘাত করার পরে, আমি ঠিক করতে পারি git fetchএবং রেপো রিমোটের সাথে সিঙ্ক করে।
রিয়ার রিপোজিটরি হিসাবে খালি সংগ্রহস্থল যুক্ত করুন, তারপরে ব্যবহার করুন git push।
আমার জন্য এই সমন্বয়টি কাজ করেছে:
git remote add remote_site https://github.com/project/repo.git
git fetch -u remote_site +refs/heads/:refs/heads/*
git push --mirror
আনার জন্য একটি প্যারামিটার প্রয়োজনীয় ছিল, অন্যথায় আমি ত্রুটি বার্তাটি পেয়েছি: "বর্তমান শাখার রেফ / হেড / নন-বেয়ার রিপোজিটরিয়ের মাস্টার" এ প্রত্যাখ্যান করুন ( https://stackoverflow.com/a/19205680/4807875 দেখুন )