ভিমডিফ সহ সমস্ত গিট ডিফ্সেস দেখা হচ্ছে


209

আমি গাইড হিসাবে git diff" গিট ডিফ উইথ ভিমডিফ " ব্যবহার করে ভিমডিফের মোড়কে সেটআপ করেছি এবং পরিবর্তিত অনেকগুলি ফাইল না থাকলে এটি প্রত্যাশা অনুযায়ী কাজ করছে।

যখন পরিবর্তনগুলির সাথে একাধিক ফাইল থাকে এবং আমি চালিত করি git diff, এটি প্রথম ফাইলটি খুলবে এবং ভিমডিফের প্রথম উদাহরণটি ছাড়ার পরে, আমি নিম্নলিখিত বার্তাটি উপস্থিত করছি:

external diff died, stopping at filename

এটি আমার অভ্যস্ত থেকে সম্পূর্ণ ভিন্ন আচরণ। আমার অতীতে এসভিএন এর সাথে একইরকম সেটআপ ছিল এবং একাধিক ফাইলের বিপরীতে আমি প্রথম ফাইলটি পর্যালোচনা করতাম, তারপরে লিখি এবং ব্যবহারটি ছেড়ে দেব :wqএবং পার্থক্য সহ পরবর্তী ফাইলটি খুলবে।

গিটের ক্ষেত্রে এটি হয় না। আমি চেষ্টা করেছি :n[ext], তবে এটি করার ফলে বাম উইন্ডোটি আসল ফাইলটি পূরণ করে না যাতে এটি পরিবর্তিত সংস্করণে পৃথক হতে পারে।

উত্তর:


337
git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool

টাইপিং git dপ্রত্যাশিত আচরণ, টাইপিং উৎপাদ :wqchangeset পরবর্তী ফাইলে তেজ চক্রে।


22
শুধু আমার দুটি সেন্ট: আমি dfএলিয়াসেট দিয়েছি diffএবং dtএডিয়াক করেছি difftool। এছাড়াও, :qaভিমে টাইপ করা কোনও পরিবর্তন না করেই পরবর্তী পরিবর্তনটিতে সাইকেল চালিয়ে যাবে।
জে সি ইয়ামোকোস্কি

2
পরিবর্তনগুলি সংরক্ষণ করার সময় আপনাকে ": w!" টাইপ করতে হবে ব্যতীত এই সমাধানটি দুর্দান্ত! পরিবর্তে: ডব্লিউ
আসেনার

2
@ জোনিয়ামো সেটিং ওরফে সর্বদা নির্ভর করা উচিত আমরা কতটা কমান্ড ব্যবহার করি। আমি প্রায়শই এর git diffচেয়ে বেশি ব্যবহার করি git difftool। সুতরাং আমি d' 'dt' to ডিফ' এবং ডিফ্টল'এল হয়েছি। প্যাটার্ন সহ এলিয়াস তৈরির চেয়ে ব্যবহারযোগ্যতা বিষয়।
হবিব পারওয়াদ

কীভাবে "গিট ডিফ" ব্যবহার করতে পারেন ভিমডিফ ?, এই উত্তরটি আমাকে একটি উপনাম ব্যবহার করে তোলে। যদি আমি "ডিফ" করতে পারি তবে এটি কাজ করে না।
রম্বাস

6
@ আসনার "এই পরিবর্তনগুলি দুর্দান্ত তবে ব্যতীত পরিবর্তনগুলি সংরক্ষণ :w!করার সময় :w" পরিবর্তে আপনাকে টাইপ করতে হবে । এটা এ কারণে যে Git কল হয় vimdiffসঙ্গে -Rবিকল্প। আপনি এটি দিয়ে ওভাররাইড করতে পারেন git config --global difftool.vimdiff.cmd 'vimdiff "$LOCAL" "$REMOTE"'। এটি লিখনযোগ্য মোডে ভিমডিফ খুলবে।
উইসবাকি

103

আপনি চেষ্টা করতে পারেন git difftool, এটি এই স্টাফটি করতে ডিজাইন করা হয়েছে।

প্রথমত, আপনাকে ভিফডিফের জন্য ডিফ সরঞ্জামগুলি কনফিগার করতে হবে

git config diff.tool vimdiff

তারপরে, যখন আপনি আলাদা করতে চান, কেবল git difftoolপরিবর্তে ব্যবহার করুন git diff। এটি আপনার প্রত্যাশা মতো কাজ করবে।


1
প্রায় সেখানে! কিছুটা সংশোধন করা হয়েছে ঠিক এটিই আমি খুঁজছি। +1 যদিও!
ছাগ

1
ভিডমিফ মার্জারটুলটি সম্প্রতি আপডেট করা হয়েছে: git.kernel.org/?p=git/… (এবং আরও কয়েকটি কমিট, তবে এটি সবচেয়ে বড়)। পরবর্তী রক্ষণাবেক্ষণ প্রকাশ কখন হবে তা নিশ্চিত নয়, তবে আপনি যদি git.git থেকে তৈরি করতে ইচ্ছুক হন তবে আপগ্রেডগুলি আপনার হবে!
ক্যাসাবেল

21
Git accepts kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
and opendiff as valid diff tools. You can also set up a custom tool. 

git config --global diff.tool vimdiff
git config --global diff.tool kdiff3
git config --global diff.tool meld
git config --global diff.tool xxdiff
git config --global diff.tool emerge
git config --global diff.tool gvimdiff
git config --global diff.tool ecmerge

3
আপনি মার্জেটুলের জন্য উত্তর দিন, ডিফ্টলটি নয়। তবে এটি এখনও সহায়ক একটি উত্তর। +1 টি।
dotancohen

@ ডটানকোহেন সত্যই ধন্যবাদ আমি কখনই লক্ষ্য করি নি যে নির্বোধের ভুলের ভিত্তিতে আমি এখন আমার উত্তরটি সম্পাদনা করতে পারি।
নানহে কুমার

1
@ নানহেকুমার, @ ডোটানকোহেন, উপরের উত্তরগুলির mergeসাথে প্রতিস্থাপন করা diffকৌশলটি করবে, অর্থাৎ git config --global diff.tool vimdiff
উইল

2

গিটে তালিকাভুক্ত নয় এমন অন্য ডিফ সরঞ্জামগুলি ব্যবহার করতে চান এমন লোকদের জন্য, বলুন nvim। এখানে আমি ব্যবহার করে শেষ করেছি:

git config --global alias.d difftool -x <tool name>

আমার ক্ষেত্রে আমি ডিফ কমান্ডটি সেট <tool name>করে দিয়েছি nvim -doke

git d <file>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.