গিট শাখা পরিবর্তন করার সহজ উপায় Eas


21

এই মুহুর্তে আমি প্রায় সমস্ত গিট সম্পর্কিত পরিচালনা করতে পলাতক ব্যবহার করছি, তবে দ্রুত দৃশ্যমান এবং উপলভ্য শাখাগুলির মধ্যে স্যুইচ করার জন্য আমি একটি ভাল ওয়ার্কফ্লো খুঁজে পাচ্ছি না।

আমি এটি করতে পারি :Git checkout <branch-name>, সমস্যাটি হ'ল এটি ফাইলের নাম এবং শাখা দুটি স্বয়ংক্রিয়ভাবে পূর্ণ হয় এবং আমি একটি শাখার তালিকা পছন্দ করি।

উত্তর:


12

এখানে উত্তরগুলি পরিসমাপ্ত করার উপায়গুলি:

ভ্যানিলা টার্মিনাল ভিম

প্রেস CTRL- Zমধ্যে স্বাভাবিক মোডটি আপনাকে শেল ফিরে ড্রপ এবং তেজ স্থগিত হবে। আপনার git checkout [branchname]টাইপ কার্যকর করার পরে fgস্থগিত করা ভিমে ফিরে যাওয়ার কমান্ডটি যা ভিমকে রিফ্রেশ করতে বাধ্য করবে।

ভ্যানিলা জিইউআই ভিম

কিছু জিভিএম বাস্তবায়নের :shellসমর্থন থাকবে যা বোবা টার্মিনালটি ব্যবহার করে ভিমের অভ্যন্তরে একটি শেল খুলবে। তবে এটি কেবল টাইপ করা সহজ হতে পারে:

:!git checkout [branchname]

এটি নতুন শেল প্রম্পট না খোলার মাধ্যমে কমান্ডটি কার্যকর করবে। (এই বিকল্পটি টার্মিনাল ভিমেও ব্যবহারযোগ্য)।

তেজ-পলাতক

vim-fugitive একটি প্লাগইন যা আপনাকে ভিমের মধ্যে থেকে গিট ব্যবহার করতে দেয়। আদেশটি হ'ল:

:Git checkout [branchname]

তেজ-merginal

ভিআইএম-মার্জিনাল এমন একটি প্লাগইন যা ভিআইএম -পলাতক ব্যবহার করে এবং একটি ব্যবহারকারী বান্ধব-ইশ ইন্টারফেস সরবরাহ করে।

  1. প্রকার :Merginal
  2. আপনি যে শাখাতে চান সেখানে কার্সার সরান।
  3. ccশাখাটি পরীক্ষা করতে টাইপ করুন ।

1
এটি fugitiveনা fugative, এবং ওপি এটি ইতিমধ্যে ব্যবহার করছে।
مورু

1
দুর্দান্ত উত্তর। vim-merginalআমি যা খুঁজছিলাম
সার্জিও ডি মার্কেজ

1
আমি পছন্দ করি ctrl-zকারণ এটি ফাইলগুলি অটো লোড করে। সহকর্মীরা কমান্ড লাইনের জন্য একটি টিএমউक्स উইন্ডো এবং একটি ভিমের জন্য একটি পছন্দ করতে পারে তবে যখন তারা চেকআউট করে বা ভিমে ফিরে আসে তখন মার্জ করে তাদের প্রতিটি খোলা ফাইল এবং :e!প্রতিবার যেতে হয় । ( :bufdo e) যা মনে রাখার জন্য একটি ব্যথা। পরিবর্তে এটি ctrl-zযখন তখন fgঘটে যায় তখন সহজতর হয়ে যায় যখন ভিম :eঅটো- ম্যাজিকালি সম্পাদন করে ।
সুকিমা

আমি আর একটি চমৎকার পলাতক এক্সটেনশন আপনি তালিকায় যুক্ত করতে পারেন: github.com/sodapopcan/vim-twiggy
সেরজিও ডি মার্কেজ

গিট চেকআউট ইতিমধ্যে সম্পন্ন হয়ে গেলে, :checktimeসমস্ত খোলা বাফারগুলি পুনরায় লোড করার কাজে আসে।
এলইআই

12

ব্যবহার করুন তেজ-merginal প্লাগইন ( পলাতক এক্সটেনশন)। এটি এর জন্য ইন্টারেক্টিভ টিউআই সরবরাহ করে:

  • শাখাগুলির তালিকা দেখছি
  • সেই তালিকা থেকে শাখা পরীক্ষা করা হচ্ছে
  • নতুন শাখা তৈরি করা হচ্ছে
  • শাখা মুছে ফেলা হচ্ছে
  • শাখা মার্জ করা হচ্ছে
  • শাখা ছাড়ছে Re
  • সংযুক্তির বিরোধগুলি সমাধান করা
  • রিমোটগুলির সাথে ইন্টারঅ্যাক্ট করা (টান, ধাক্কা, আনা, ট্র্যাকিং)
  • অন্যান্য শাখার বিরুদ্ধে পৃথকীকরণ
  • নামকরণ শাখা
  • শাখাগুলির জন্য গিট ইতিহাস দেখছে

এখানে চিত্র বর্ণনা লিখুন


7

আপনার টার্মিনালটি আলিঙ্গন করা উচিত। আপনি যদি CTRL-Zএটি ব্যবহার করেন তবে এটি ভিম (বা আপনি বর্তমানে যে কোনও প্রক্রিয়া চালিয়ে যাচ্ছেন) এর পটভূমি তৈরি করবে, তারপরে আপনি যে কোনও আদেশ চান তা fgচালিয়ে নিতে পারেন, প্রক্রিয়াটিকে অগ্রভাগে ফিরিয়ে আনতে:

<CTRL-Z>
git checkout <tab>
fg

3
... এবং জিভিম ব্যবহার করার সময়?
মুরু

2
:shellআপনার অন্যান্য প্রিয় টার্মিনাল এমুলেটরটিতে যাওয়ার বা ওয়েল ট্যাব করার উপায়টি হল
65-e9-7e-17

2
আমি সর্বদা পছন্দ করি!git checkout [branchname]
ব্রোঞ্জহেডউইক

5

পলাতকটির Git checkout <branch>একটি খারাপ দিক রয়েছে যা এটি শাখার নামটি স্বয়ংক্রিয়ভাবে পূর্ণ করে না। Fzf.vim ব্যবহার করে আমি এই আদেশটি তৈরি করেছি:

function! s:changebranch(branch) 
    execute 'Git checkout' . a:branch
    call feedkeys("i")
endfunction

command! -bang Gbranch call fzf#run({
            \ 'source': 'git branch -a --no-color | grep -v "^\* " ', 
            \ 'sink': function('s:changebranch')
            \ })

আশা করি আপনি এটি দরকারী পাবেন


1

@ কুবেক ২ কে প্রদত্ত উত্তরটি এত অভূতপূর্ব। এই সমাধানটি আমি কল্পনা করতে এবং কোডের কম লাইনে প্রয়োগ করতে পারি তার চেয়ে ভাল যা আমি কল্পনা করতে পারি। এটি আমাকে 'fzf' এর শক্তিশালী ব্যক্তিগতকরণ ব্যবহার বুঝতে সহায়তা করার দরজা খুলেছে।

অতিরিক্তভাবে সরবরাহ করার জন্য আমি এটি সামান্য সংশোধন করেছি:

  1. কমান্ড লাইনের পরিবর্তে রেফগুলি পেতে পলাতক ব্যবহার করে, (উইন্ডোজের জন্য আরও ভাল সমর্থন)
  2. শাখাগুলি সহ ট্যাগগুলি তালিকাভুক্ত করুন

এখানে সামান্য পরিবর্তন রয়েছে:

function! s:gitCheckoutRef(ref) 
    execute('Git checkout ' . a:ref)
    " call feedkeys("i")
endfunction
function! s:gitListRefs()
   let l:refs = execute("Git for-each-ref --format='\\%(refname:short)'")
   return split(l:refs,'\r\n*')[1:] "jump past the first line which is the git command
endfunction
command! -bang Gbranch call fzf#run({ 'source': s:gitListRefs(), 'sink': function('s:gitCheckoutRef'), 'dir':expand('%:p:h') })
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.