ভিমডিফ প্রতিস্থাপনের চূড়ান্ত মার্জারুল
এটি জিভ-ইন-গাল ধরনের, তবে এটিই আমি ভিমডিফ চেষ্টা করার পরে ভিমার হিসাবে রূপান্তরিত হয়েছি ended
মার্জ সংঘাতের সমাধানের জন্য, আমার প্রায়শই যা প্রয়োজন তা হ'ল:
- দূরবর্তী
- স্থানীয়
- দুটি ভিন্নতা:
- বেস রিমোট পার্থক্য
- বেস বেস
তারপর উভয় একসাথে রাখার চেষ্টা করুন।
যখন ভিমডিফ স্ক্রিনে বেস, স্থানীয় এবং রিমোট দেখায়:
+--------------------------------+
| LOCAL | BASE | REMOTE |
+--------------------------------+
| MERGED |
+--------------------------------+
আমি জানি না কীভাবে এটি দু'টি আলাদাভাবে আমার ডান বামে ডান বাম দিকে তাকিয়ে থাকা দরকার clearly
তদ্ব্যতীত, স্থানীয় এবং রিমোট ইতিমধ্যে গিট সংশ্লেষ সংঘাতের চিহ্নিতকারীগুলিতে দৃশ্যমান, সুতরাং আমি আবার কোনও সরঞ্জামের সাহায্যে এগুলি অর্জন করি না।
অতএব, আমি পরিবর্তে আমার নিজের ক্ষুদ্র "ডিফ্টল" তৈরি করেছি যা আসলে আমি যে অনুভূতিগুলি হারিয়েছিলাম তা প্রদর্শন করে:
~ / বিন / cirosantilli-mergetool
#!/usr/bin/env bash
BASE="$1"
LOCAL="$2"
REMOTE="$3"
diff --color -u "$BASE" "$LOCAL"
diff --color -u "$BASE" "$REMOTE"
exit 1
গিটহাব উজানের দিকে ।
এবং এটি দিয়ে এটি ইনস্টল করুন:
git config --global mergetool.cirosantilli-mergetool.cmd 'cirosantilli-mergetool $BASE $LOCAL $REMOTE'
git config --global mergetool.cirosantilli-mergetool.trustExitCode true
# If you want this to become your default mergetool.
#git config --global merge.tool 'cirosantilli-mergetool'
এখন, আপনি যখন করবেন:
git mergetool -t cirosantilli-mergetool
এটি টার্মিনালে যে দুটি ভিন্নতা চাই তা দেখায়, উদাহরণস্বরূপ কিছু বরাবর:
--- ./src/dev/arm/RealView_BASE_15560.py 2019-12-27 13:46:41.967021591 +0000
+++ ./src/dev/arm/RealView_LOCAL_15560.py 2019-12-27 13:46:41.979021479 +0000
@@ -994,7 +994,7 @@
def setupBootLoader(self, cur_sys, loc):
if not cur_sys.boot_loader:
- cur_sys.boot_loader = [ loc('boot_emm.arm64'), loc('boot_emm.arm') ]
+ cur_sys.boot_loader = [ loc('boot.arm64'), loc('boot.arm') ]
cur_sys.atags_addr = 0x8000000
cur_sys.load_offset = 0x80000000
@@ -1054,7 +1054,7 @@
]
def setupBootLoader(self, cur_sys, loc):
- cur_sys.boot_loader = [ loc('boot_emm_v2.arm64') ]
+ cur_sys.boot_loader = [ loc('boot_v2.arm64') ]
super(VExpress_GEM5_V2_Base,self).setupBootLoader(
cur_sys, loc)
--- ./src/dev/arm/RealView_BASE_15560.py 2019-12-27 13:46:41.967021591 +0000
+++ ./src/dev/arm/RealView_REMOTE_15560.py 2019-12-27 13:46:41.991021366 +0000
@@ -610,10 +610,10 @@
def attachIO(self, *args, **kwargs):
self._attach_io(self._off_chip_devices(), *args, **kwargs)
- def setupBootLoader(self, cur_sys, loc):
- cur_sys.boot_loader = loc('boot.arm')
- cur_sys.atags_addr = 0x100
- cur_sys.load_offset = 0
+ def setupBootLoader(self, cur_sys, boot_loader, atags_addr, load_offset):
+ cur_sys.boot_loader = boot_loader
+ cur_sys.atags_addr = atags_addr
+ cur_sys.load_offset = load_offset
সুতরাং আপনি দেখতে পাচ্ছেন এখানে দুটি ডিফারেন্স টার্মিনালে ফেলে দেওয়া হয়েছে:
RealView_BASE_15560.py
বনাম RealView_LOCAL_15560.py
RealView_BASE_15560.py
বনাম RealView_REMOTE_15560.py
যদি ভিন্নতাগুলি বড় হয় তবে আমি কেবল আমার টিএমউক্স পরাশক্তিগুলির সাথে অনুসন্ধান করব ।
হ্যাঁ, আপনি কিছুটা শর্টকাট হারিয়ে ফেলেছেন যা ভিডমিফ সরবরাহ করে, তবে সাধারণ সমাধানের বিরোধের জন্য উভয় সংস্করণ থেকে যত্ন সহকারে অনুলিপি পেস্টের প্রয়োজন হয়, যা আমি গিট সংঘাতের চিহ্নিতকারীদের সাথে একটি সাধারণ ভিম সেশনের মধ্যে ভাল করতে পারি।
vimdiff
চলমান অবস্থায় ফাইলগুলি পর্যবেক্ষণ করা এবং পৃথক করা
আমি বসার আগে এবং আমার নিখুঁত সেটআপটি স্বয়ংক্রিয় করার আগে, আমি cirosantilli-mergetool
আমার প্রয়োজন দুটি ভিন্নতা পেতে এটি করছিলাম।
যদিও git mergetool
চলমান vimdiff
, যদি সেখানে নামে একটি ফাইল-এ একটি বিবাদে আছে, বলো, main.py
, Git সংস্করণ নামকরণ প্রত্যেকের জন্য ফাইল উত্পন্ন:
main_BASE_1367.py
main_LOCAL_1367.py
main_REMOTE_1367.py
একই ডিরেক্টরিতে main.py
যেখানে 1367
গিট মার্জেটুলের পিআইডি, এবং সেইজন্য একটি "এলোমেলো" পূর্ণসংখ্যার যেমন উল্লেখ করা হয়েছে: গিট একীভূত সংঘর্ষে, ব্যাকআপ, বেস, স্থানীয় এবং রিমোট ফাইলগুলি কী উত্পন্ন হয়?
সুতরাং, আমি যে পার্থক্যগুলি দেখতে চাই তা দেখতে, আমি প্রথমে উত্পন্ন ফাইলগুলি সন্ধান করি git status
এবং তারপরে নতুন টার্মিনালগুলি খুলি এবং আমার যে ফাইলগুলির যত্ন নেওয়া সেগুলির মধ্যে একটি ভিডমিফ করি:
vim -d main_BASE_1367.py main_LOCAL_1367.py
vim -d main_BASE_1367.py main_REMOTE_1367.py
এক্সাথে git mergetool
এই তথ্যগুলি দ্রুত কী চলছে তা নির্ধারণ করতে প্রচুর সহায়তা করে!
এছাড়াও, মার্জারুল চলমান অবস্থায় আপনি কেবল ফাইলটি খুলতে পারেন:
vim main.py
সরাসরি এবং সেখানে সম্পাদনা করুন যদি আপনি মনে করেন যে এটি বৃহত্তর সম্পাদক উইন্ডো দিয়ে আরও সহজ হতে চলেছে।
সংঘাতগুলি মার্জ করার জন্য সরাসরি ঝাঁপুন
যদিও ]c
vimdiff ভিতরে পরবর্তী পরিবর্তন বিন্দু থেকে জাম্প, সেখানে সবসময় মার্জ দ্বন্দ্ব নেই।
এটির সাহায্যে আমার এইটি রয়েছে ~/.vimrc
:
# Git Merge conflict
nnoremap <leader>gm /\v^\<\<\<\<\<\<\< \|\=\=\=\=\=\=\=$\|\>\>\>\>\>\>\> /<cr>
যা সরাসরি দ্বন্দ্বগুলি আবিষ্কার করে।
গিট আইমেজ
সম্ভবত সর্বোত্তম বিকল্পটি হ'ল কেবল ভিমডিফ ব্যবহার করা ছেড়ে দেওয়া এবং নিয়মিত ভিআইএম + গিট আইমেজের উপর নির্ভর করা যার উপরে উল্লেখ করা হয়েছিল: আমি কীভাবে জানতে পারি যে কোন গিট সংঘাত সৃষ্টি করে? যেহেতু ভিমডিফের শেখার বক্রতা বিরক্তিকর, এবং এটি আমাদের সবচেয়ে বেশি প্রয়োজন এমন ফাংশনগুলি করে না।