এখানে বেশিরভাগ উত্তরের জন্য একটি পরিষ্কার কার্যনির্বাহী ডিরেক্টরি এবং একাধিক ইন্টারেক্টিভ পদক্ষেপ (স্ক্রিপ্টিংয়ের জন্য খারাপ) প্রয়োজন, বা সব ক্ষেত্রেই কাজ করবেন না, যেমন অতীতের সংশ্লেষ যা ইতিমধ্যে আপনার টার্গেট শাখায় কিছু অসামান্য পরিবর্তন আনে, বা চেরি-পিকগুলি করছে একই।
আপনি master
যদি শাখায় মার্জ হয়ে develop
যান তবে সত্যিকার অর্থে শাখায় কী পরিবর্তন হবে তা দেখতে এখনই:
git merge-tree $(git merge-base master develop) master develop
এটি একটি নদীর গভীরতানির্ণয় আদেশ হিসাবে, এটি আপনি কী বোঝাতে চান তা অনুমান করে না, আপনাকে স্পষ্ট করে বলতে হবে। এটি আউটপুটটিকেও রঙিন দেয় না বা আপনার পেজার ব্যবহার করে না, সুতরাং সম্পূর্ণ কমান্ডটি হ'ল:
git merge-tree $(git merge-base master develop) master develop | colordiff | less -R
- https://git.seveas.net/previewing-a- विसरा-result.html
(লিঙ্কটির জন্য ডেভিড নর্মিংটনকে ধন্যবাদ)
পুনশ্চ:
যদি আপনি মার্জ সংঘাত পেতে পারেন তবে এগুলি আউটপুটে সাধারণ দ্বন্দ্ব চিহ্নিতকারীদের সাথে দেখাবে, যেমন:
$ git merge-tree $(git merge-base a b ) a b
added in both
our 100644 78981922613b2afb6025042ff6bd878ac1994e85 a
their 100644 61780798228d17af2d34fce4cfbdf35556832472 a
@@ -1 +1,5 @@
+<<<<<<< .our
a
+=======
+b
+>>>>>>> .their
ব্যবহারকারী @ ড্রেফটিম্যাক একটি ভাল পয়েন্ট করেছেন: এটি স্ক্রিপ্টিংয়ের জন্য অনুপযুক্ত করে তোলে, কারণ আপনি স্ট্যাটাস কোড থেকে সহজেই এটি ধরতে পারবেন না। সংঘাতের চিহ্নিতকারী পরিস্থিতিগুলির উপর নির্ভর করে (মুছে ফেলা বনাম পরিবর্তিত ইত্যাদির উপর নির্ভর করে) বেশ আলাদা হতে পারে, এটি গ্রেপ করাও শক্ত করে তোলে। সতর্ক থাকুন।
git merge
এবংgit reset --keep HEAD@{1}
যদি আমি ফলাফল পছন্দ না করি।