আমরা গিট ব্যবহার করি এবং একটি মাস্টার শাখা এবং বিকাশকারী শাখা রয়েছে। আমাকে একটি নতুন বৈশিষ্ট্য যুক্ত করতে হবে এবং তারপরে মাস্টার হিসাবে করা কমিটগুলি পুনরায় চালু করতে হবে, তারপরে সিআই সার্ভারে মাস্টারকে চাপ দিন।
সমস্যাটি হ'ল রিবেস চলাকালীন আমার যদি দ্বন্দ্ব হয় তবে আমি রিব্যাসটি সম্পূর্ণ হওয়ার পরে আমার দূরবর্তী বিকাশকারী শাখায় (গিথুবের উপর) ঠেলাঠেলি করতে পারি না, যতক্ষণ না আমি আমার দূরবর্তী শাখাটি টানব। এর ফলে সদৃশ কমিট হয়। যখন কোনও বিরোধ নেই, প্রত্যাশার মতো কাজ করে।
প্রশ্ন: পুনঃবাস এবং সংঘাতের সমাধানের পরে, আমি কীভাবে সদৃশ কমিট তৈরি না করে আমার স্থানীয় এবং দূরবর্তী বিকাশকারী শাখাগুলি সিঙ্ক করব?
সেটআপ:
// master branch is the main branch
git checkout master
git checkout -b myNewFeature
// I will work on this at work and at home
git push origin myNewFeature
// work work work on myNewFeature
// master branch has been updated and will conflict with myNewFeature
git pull --rebase origin master
// we have conflicts
// solve conflict
git rebase --continue
//repeat until rebase is complete
git push origin myNewFeature
//ERROR
error: failed to push some refs to 'git@github.com:ariklevy/dropLocker.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
// do what git says and pull
git pull origin myNewFeature
git push origin myNewFeature
// Now I have duplicate commits on the remote branch myNewFeature
সম্পাদনা
সুতরাং মনে হচ্ছে এটি কর্মপ্রবাহটি ভেঙে দেবে:
ডেভেলপার 1 আমার নিউফিউচার ডেভেলপার 2 এ কাজ করছে তার নিউ ফিউচার দুজনেই মাস্টারকে প্রধান শাখা হিসাবে ব্যবহার করছে
বিকাশকারী 2 আমারনিউজ ফিচারকে তার নিউ ফিচারে মার্জ করে
বিকাশকারী 1 পুনর্বাসনা করে, দ্বন্দ্বগুলি সমাধান করে, তারপরে আমার নিউ ফিজির জন্য দূরবর্তী শাখায় জোর করে
কয়েক দিন পরে, বিকাশকারী 2, আমার নিউফিউচারটিকে আবার তার নিউ ফিচারে মার্জ করে
এর ফলে কি অন্যান্য বিকাশকারীগণ বিকাশকারীকে ঘৃণা করবে?
force
ধাক্কা) এর মতো কাজ করতে পারে
rewriting history
, এটি একটিrebase
we
? আপনি শুধু আপনি চেয়ে বেশি একটি দলে আছেন?they
বলুন (আমার চেয়ে বেশি পরিচিত লোকেরা) যে আপনি যদি আপনার কোডটি ভাগ করেন তবে আপনার ব্যবহার করা উচিত নয়rebase
। কেন আপনি শুধু করছেন নাgit pull
এবংgit merge
?