فرض کن برنامهی روی گیتهاب نسخهی ۱۰۰ هست و تو اون رو کامپیوترت clone میکنی. الآن دو تا مخزن گیت وجود دارند که مثل همدیگه هستند. تا اینجا مشکلی نیست.
شما روی کامیپوترت فرض کن یک فایل فارسی اضافه میکنی و بعد commit میکنی اون رو. الآن نسخهی روی کامپیوترت ۱۰۱ هست.
حالا یک نفر روی مخزن اصلی کدی رو اضافه میکنه (push میکنه) و الآن نسخهی روی گیتهاب هم ۱۰۱ هست.
الآن شما pull میکنی (یعنی میخوای که فایلهای روی گیتهاب رو بگیری و جایگزین فایلهای قبلی کنی). در این لحظه گیت بهت پیغام خطا میده و میگه که merge conflict داری:
CONFLICT (content): Merge conflict in test1
Automatic merge failed; fix conflicts and then commit the result.
در این لحظه گیت به خودش میگه: اگه نسخهی روی گیتهاب رو بیارم روی کامپیوترش، فایلهای که این همه بندهی خدا ویرایش کرده ناپدید میشه. اگر هم نیارم که کارش راه نمیافته.
در نتیجه مغزش هنگ میکنه و پیغام خطا میده. که برای حل کردنش نیاز به دنگ و فنگ داری.
------------
راه حلی که بنظر من میرسه این هست:
۱. شما مخزن اصلی روی گیتهاب رو دو جا روی کامپیوترت clone کن. اسمشون رو میذاریم مثلاً clone_1 و clone_2.
۲. یک مخزن گیت خالی روی مثلاً گیتهاب درست کن (البته من خودم از
گیتوریس استفاده میکنم) و اسمش رو میذاریم مثلاً fa_1
۳. حالا شما فقط روی clone_1 کار کن و فایلها رو ترجمه کن و بعد commit و بعد push روی مخزن fa_1
۴. به clone_2 کاری نداشته باش و فقط روی اون git pull بزن.
۵. روی clone_2 بعد از هر بار بهروزرسانی diff بزن و تفاوتها رو به صورت دستی به clone_1 اضافه کن و بعد commit و پوش.
۶. وقتی کار ترجمه تموم شد. pull request بده.
موفق باشی.