আমি একটি দূরবর্তী এসভিএন সংগ্রহস্থলকে মিরর করার জন্য একটি মধ্যবর্তী গিট সংগ্রহস্থল ব্যবহার করছি, যেখান থেকে লোকেরা ক্লোন করতে এবং কাজ করতে পারে। মধ্যবর্তী সংগ্রহস্থলটির মাস্টার শাখাটি উজানের এসভিএন থেকে রাতের বেলা পুনর্বাসিত হয়েছে এবং আমরা বৈশিষ্ট্য শাখায় কাজ করছি। উদাহরণ স্বরূপ:
remote:
master
local:
master
feature
আমি আমার বৈশিষ্ট্য শাখাটিকে সফলভাবে রিমোটে ফিরে যেতে পারি এবং আমার প্রত্যাশাটি শেষ করতে পারে:
remote:
master
feature
local:
master
feature
আমি তখন রিমোটটি ট্র্যাক করতে শাখাটি পুনরায় সেটআপ করব:
remote:
master
feature
local:
master
feature -> origin/feature
এবং সব ঠিক আছে। আমি এখান থেকে যা করতে চাই তা হ'ল রিমোটের মাস্টার ব্রাঞ্চে বৈশিষ্ট্য শাখাটি পুনরায় চালু করা, তবে আমি আমার স্থানীয় মেশিন থেকে এটি করতে চাই। আমি করতে সক্ষম হতে চাই:
git checkout master
git pull
git checkout feature
git rebase master
git push origin feature
রিমোট বৈশিষ্ট্য শাখাকে রিমোট মাস্টারের সাথে আপ-টু-ডেট রাখার জন্য। তবে এই পদ্ধতির কারণে গিট অভিযোগ করতে পারে:
To <remote>
! [rejected] feature -> feature (non-fast-forward)
error: failed to push some refs to '<remote>'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
git pull
কৌতুকটি করে তবে এমন একীভূত প্রতিশ্রুতি দেয় যা আমি এড়াতে চাই। আমি উদ্বিগ্ন যে বার্তাটির feature -> feature
পরিবর্তে বলা হয়েছে feature -> origin/feature
তবে এটি কেবল উপস্থাপনের জিনিস হতে পারে।
আমি কি কিছু মিস করছি, বা পুরোপুরি ভুল উপায়ে এ নিয়ে যাচ্ছি? রিমোট সার্ভারে রিবেসটি করা এড়ানো গুরুত্বপূর্ণ নয়, তবে এটি রিবেস থেকে যে কোনও মার্জ সংঘাতকে সংশোধন করা আরও শক্ত করে তোলে।