ম্যাক ওএস এক্সে কাজ করার জন্য গিট-সমাপ্তি.বাশ কীভাবে পাবেন?


92

আমি অনুসরণ করেছেন http://blog.bitfluent.com/post/27983389/git-utilities-you-cant-live-without যোগ করার জন্য git-completion.bashআমার/opt/local/etc/bash_completion.d/git-completion

এবং আমি PS1='\h:\W$(__git_ps1 "(%s)") \u\$ 'আমার। বাশার্ক_প্রফাইলে রেখেছি

কিন্তু এখন আমি এই হচ্ছি -bash: __git_ps1: command not foundসবকিছু আমি একটি cd

আমি কি অনুপস্থিত আমাকে বলতে পারেন?


উত্তর:


65

আমি আমার নতুন স্নো চিতাবাঘের ইনস্টলেশনতে ম্যাকপোর্টগুলি ব্যবহার করে গিট ইনস্টল করেছি। .Dmg চিত্র থেকে ম্যাকপোর্টগুলি ইনস্টল হওয়ার পরে, এটি টার্মিনাল.এপ-এর কমান্ড হবে:

sudo port selfupdate
sudo port install git-core +bash_completion

আপনি যদি এসভিএন সংগ্রহস্থল এবং ডক্স থেকে টানতে সহায়তা চান তবে দ্বিতীয় লাইনের পরিবর্তে এটি ব্যবহার করুন:

sudo port install git-core +bash_completion +doc +svn

তারপরে আপনার ~ /। প্রোফাইল বা ~ / .বাশ_প্রফাইলে নিম্নলিখিতটি যুক্ত করুন:

# ম্যাকপোর্টস ব্যাশ শেল কমান্ড সমাপ্তি
যদি [-f / opt / local / etc / bash_completion]; তারপর
    । / অপ্ট / স্থানীয়, / etc / bash_completion
ফাই

বা ম্যাকপোর্টস এর জন্য ২.১.২ সংস্করণ থেকে পর্বত সিংহটিতে:

# ম্যাকপোর্টস ব্যাশ শেল কমান্ড সমাপ্তি
যদি [-f /opt/local/etc/profile.d/bash_completion.sh]; তারপর
  । /opt/local/etc/profile.d/bash_completion.sh
ফাই

বা ম্যাকপোর্টসের জন্য গিটের আরও নতুন সংস্করণ রয়েছে:

যদি [-f /opt/local/share/git-core/git-prompt.sh]; তারপর
    । /opt/local/share/git-core/git-prompt.sh
ফাই

দ্রষ্টব্য: bash_completion.sh দ্বারা বাশ 4.1 বা ততোধিক প্রয়োজন। যদি সমাপ্তি কাজ না করে echo $BASH_VERSIONতবে এটি চেষ্টা করার চেষ্টা করুন । যদি তা হয় তবে টাইপ করে ম্যাকপোর্টস ব্যাশে প্রবেশ bashকরুন এবং আবার গিট সমাপ্তির চেষ্টা করুন।


আমি কেবল আটকানো অনুলিপি করেছি এবং এখনও অপিটির ত্রুটিটি পেয়েছি। = \। কীভাবে অন্তর্ভুক্ত করা হয়েছে তা আপনি বলবেন? আমি তখন বাশ_ কমপ্লিশেশন স্রোস করা হয় না
নুলভক্সপপুলি

গিট / ম্যাকপোর্ট / ব্যাশ-সমাপ্তির নতুন সংস্করণ সহ প্রম্পটটি অন্য কোনও ফাইলে রয়েছে note দেখুন: trac.macports.org/ticket/36334 if [ -f /opt/local/share/git-core/git-prompt.sh ]; then . /opt/local/share/git-core/git-prompt.sh fi
Yehosef

3
4.1 বা আরও উন্নত /opt/local/etc/profile.d/bash_completion.shপ্রয়োজন হওয়ার কারণে $BASH_VERSION, ম্যাকপোর্টস 2.1.3 সহ আমার একটি ম্যাক ওএস এক্স 10.8.3 এ নিম্নলিখিত কাজগুলি করতে হয়েছিল: ম্যাক ওএস এক্স লগইন /bin/bashশেলটিকে তার ডিফল্ট (3.2.48 (1) -রেলিজ) থেকে ম্যাকপোর্টে /opt/local/bin/bash(4.2 ) এ স্যুইচ করুন .42 (2) -রিলেজ) এখানে বর্ণিত মত এটি পছন্দ করুন: stackoverflow.com/a/791244/287984। মূলতif [ `grep /opt/local/bin/bash /etc/shells` ]; then echo /opt/local/bin/bash | chsh -s /opt/local/bin/bash; else echo /opt/local/bin/bash | sudo tee -a /etc/shells; chsh -s /opt/local/bin/bash; fi
উয়ে গেন্টার

আমার জন্য দুর্দান্ত কাজ করেছেন /bin/bashটার্মিনাল.এপ প্রতিস্থাপন করতে /opt/local/bin/bashহবে ম্যাকপোর্টগুলি থেকে + .bash_profileএখানে প্রস্তাবিত সমস্ত পরিবর্তন।
bgs

1
4.1 বাশ বাশ এ যাওয়ার জন্য আপনি এখানে নির্দেশাবলী অনুসরণ করতে পারেন: আপেল.স্ট্যাকেক্সেঞ্জার
কুইশনস

55

আপনি যদি হোমব্রিউ ব্যবহার করে গিট ইনস্টল করেন তবে আপনি ম্যাকপোর্টস পরামর্শটি সামান্য সামঞ্জস্য করতে পারেন এবং এটি আপনার .bash_profileএবং.bashrc

if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then
. `brew --prefix`/etc/bash_completion.d/git-completion.bash
fi

আপনি হোমব্রিউ আইটি ব্যবহার করে গিটটি সঠিকভাবে ইনস্টল করেছেন কিনা তা যাচাই করার সেরা উপায়

brew info git

এবং গিট ব্যাশ সমাপ্তির ইনস্টল ডিরেক্টরিটির আউটপুট পরীক্ষা করে দেখুন

গিটের সর্বশেষ সংস্করণ (1.7.12) প্রম্পটটি সক্ষম করতে নিম্নলিখিতগুলিরও প্রয়োজন।

if [ -f `brew --prefix`/etc/bash_completion.d/git-prompt.sh ]; then
    . `brew --prefix`/etc/bash_completion.d/git-prompt.sh
fi

আরও তথ্যের জন্য __git_ps1, এই স্ট্যাকের সুপারuser.com/a/477749/90231 উত্তর দেখুন ।
রিচভেল

26

আপনাকে যা করতে হবে তা হ'ল git-completion.bashফাইলটি আপনার ব্যবহারকারীর হোম binডিরেক্টরিতে রাখুন এবং নিম্নলিখিতটি আপনার .profileবা .bash_profileফাইলটিতে রাখুন:

export PATH="$HOME/bin:$PATH"
source ~/bin/git-completion.bash
PS1='[\u@\h \w$(__git_ps1 " (%s)")]\$ '

এটি যা করে তা নিশ্চিত করে যে আপনার স্থানীয় বিনটি প্যাথ-এ রয়েছে এবং sourceকমান্ডটি জিনিসগুলি পাচ্ছে। তারপরে পিএস 1 পরিবর্তনটি বর্তমানে পরীক্ষিত শাখাটিকে প্রম্পটে রাখে।

সুতরাং, GIT এর "সম্পূর্ণতা" সংস্করণ ইনস্টল করার জন্য কোনও ম্যাকপোর্ট ইনস্টল নেই (বিশেষত আপনি যদি ইতিমধ্যে এটি ইনস্টল করে থাকেন তবে বিরক্তিকর)।



1
আপনার প্রম্পটে রঙের সাথে কীভাবে PS1 জিনিসটি একত্রিত করা যায় তা নিয়ে যারা ভাবছেন তাদের দেখুন: stackoverflow.com/questions/816790/…
নিকোলে

1
আরও স্পষ্টভাবে, গিট-সমাপ্তি.বাশকে আপনার কোথাও থাকা দরকার $PATH। আমি আমার স্থাপনের সিদ্ধান্ত নিয়েছি /usr/local/bin/যাতে আমাকে আমার বিদ্যমানটি সংশোধন করতে না হয় $PATH
মেটাভিডা

13

পুরানো ম্যাকপোর্টের জন্য বর্তমান উত্তরটি সঠিক হলেও সর্বাধিক বর্তমান ম্যাকপোর্টগুলি একই সমস্যা ত্রুটির ফলে একটি নতুন সমস্যা রয়েছে।

বর্তমান ব্যাশ-সমাপ্তি প্যাকেজ (২.০ r1) সঠিকভাবে কাজ করতে কমপক্ষে একটি ব্যাশ ৪.১ প্রয়োজন। সাধারণ ওএস এক্স টার্মিনালটি /bin/bashএটি ব্যবহার করে কেবল একটি 3.x. আপনাকে /opt/local/bin/bash -lএখানে ম্যাকপোর্টস ডকুমেন্টেশনে বর্ণিত হিসাবে ব্যবহার করতে আপনার টার্মিনাল সেটিংস পরিবর্তন করতে হবে : http://trac.macport.org/wiki/howto/bash-completion


এটি সর্বাধিক সঠিক উত্তর কারণ আমি কেবল ম্যাকপোর্টগুলি আপডেট করার পরেই সমস্যাটি শুরু করি। টার্মিনাল থেকে ম্যাকপোর্টস ব্যাশ ব্যবহারের একমাত্র অবক্ষয়টি হ'ল আমি যখন আমার টার্মিনাল উইন্ডোটি বন্ধ করার চেষ্টা করি তখন চলমান প্রক্রিয়াগুলি বন্ধ করার বিষয়ে আমাকে সতর্ক করে - আপনি কি এতে প্রবেশ করেছেন?
vitch


5

বিরক্তিজনকভাবে এটি আবার ভেঙে গেছে। এবার এর গিট লোকটির সংস্করণ 1.7.12-1 রয়েছে -1 সম্পূর্ণরূপে কার্যকারিতা ছাড়াই লোকেদের কেবলমাত্র প্রম্পট কার্যকারিতা থাকতে দেয় (যা জিনিসগুলিকে ধীর করে দিতে পারে), তারা bash_completion / গিট এবং তার নিজস্ব git-prompt.sh ফাইলের মধ্যে প্রম্পট কার্যকারিতা রিফেক্টর করেছিল।

সুতরাং @ লারার দ্বারা বর্ণিত বাশ_কম্পশন যুক্ত করা আপনাকে কেবল সম্পূর্ণ করবে (হিট ট্যাব ট্যাগ / শাখার নাম সম্পূর্ণ করে)।

এটি পেতে __git_ps1আপনার PS1 প্রম্পটে এটি ব্যবহার করতে পারেন আপনাকে নীচেরগুলি আপনার ~ /। প্রোফাইলটিতে যুক্ত করতে হবে।

. /opt/local/share/doc/git-core/contrib/completion/git-prompt.sh

কিছু ব্যাকগ্রাউন্ড এখানে রয়েছে - https://bbs.archlinux.org/viewtopic.php?pid=1163632#p1163632





2

মাউন্টেন সিংহ এবং ম্যাক-পোর্টগুলির জন্য আমার __git_ps1 এবং সম্পূর্ণরূপে চলার জন্য পরিপূর্ণতা উভয় পেতে আমার .bash_profile এ নিম্নলিখিত লাইনগুলি ব্যবহার করতে হবে:

# Bash shell command completion
if [ -f /opt/local/share/doc/git-core/contrib/completion/git-completion.bash ]; then
  . /opt/local/share/doc/git-core/contrib/completion/git-completion.bash
fi

if [ -f /opt/local/share/doc/git-core/contrib/completion/git-prompt.sh ]; then
  . /opt/local/share/doc/git-core/contrib/completion/git-prompt.sh
fi

1

আমি ব্রিউ ব্যবহার করি, সুতরাং একটি মাস্টার bash_completionস্ক্রিপ্ট যা সমস্তগুলি চালায় bash_completion.dতা সরবরাহ করা হয়নি বলে মনে হয়। গিট সম্পূর্ণকরণ যুক্ত করার জন্য কেবল একটি একক স্ক্রিপ্ট চালানোর প্রস্তাব দেয় এমন সমাধানগুলি বর্ধনযোগ্য নয়, কারণ বিভিন্ন প্যাকেজগুলি বিভিন্ন সমাপ্তির স্ক্রিপ্ট যোগ করবে এবং আপনি সম্ভবত সেগুলি চালাতে চান। অতএব আমি এটিকে (আর্চ লিনাক্স থেকে অভিযোজিত) শেষে যুক্ত করেছি /etc/bashrc:

# source compat completion directory definitions
BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
if [[ -d $BASH_COMPLETION_COMPAT_DIR && -r $BASH_COMPLETION_COMPAT_DIR && \
    -x $BASH_COMPLETION_COMPAT_DIR ]]; then
    for i in $(LC_ALL=C command ls "$BASH_COMPLETION_COMPAT_DIR"); do
        i=$BASH_COMPLETION_COMPAT_DIR/$i
        [[ -f $i && -r $i ]] && . "$i"
    done
fi

1

কমপক্ষে এক্সকোড 6 দিয়ে আপনার ইতিমধ্যে রয়েছে git-completion.bash। এটি এক্সকোড অ্যাপ্লিকেশন বান্ডেলের ভিতরে।

কেবল এটি আপনার .bashrc এ যুক্ত করুন:

source `xcode-select -p`/usr/share/git-core/git-completion.bash

এটিই ছিল কেবলমাত্র উত্তর যা আসলে আমার পক্ষে কাজ করেছিল। আপনি যখন কোনও অসম্পূর্ণ কমান্ড টাইপ করবেন তখন অন্যান্য উত্তরগুলি অদ্ভুত ত্রুটি তৈরি করেছিলgit br<TAB>
r00m

0

অ্যাডাম কে ছাড়াও জনসনের পোস্টও

আপনি নিম্নলিখিতগুলিও রাখতে পারেন ...

# MacPorts Bash shell command completion
if [ -f /opt/local/etc/bash_completion ]; then
    . /opt/local/etc/bash_completion
fi

... আপনার / ইত্যাদি / প্রোফাইলে আপনি চাইলে।

"/Opt/local/etc/bash_completion.d/" ডিরেক্টরিতে ইনস্টল হওয়া যেকোনো ব্যাশ সমাপ্তি স্ক্রিপ্টগুলি থেকে সিস্টেমের সমস্ত ব্যবহারকারী উপকৃত হবেন।


0

২০১১ সালের গ্রুন্ডপ্রিনজিপের উপরের উত্তরটি এখনও ঠিক কাজ করার পরে, আমি এখন একটি সাম্প্রতিক উত্তর যুক্ত করতে চেয়েছিলাম যে এখন হোমব্রিউ প্যাকেজ ব্যাশ-সমাপ্তি ( সূত্র , রেপো ) রয়েছে যা এটি আরও সহজ করে তোলে। (এতে গিটের পাশাপাশি অন্যান্য সাধারণ সরঞ্জামগুলিরও সমাপ্তি অন্তর্ভুক্ত রয়েছে))

আজ ম্যাকোস জাহাজ 3 বাশ সহ 3, তবে আপনি brew install bash4 টি পেতে পারেন 4 যদি আপনি বাশ 4 চালাচ্ছেন তবে ব্যাশ-সমাপ্তির নতুন 2.x শাখাটি ইনস্টল করুন।

বাশ 4

  1. চালান:

    brew install bash-completion@2
  2. এতে যুক্ত করুন ~/.bash_profile:

    if [ -f /usr/local/share/bash-completion/bash_completion ]; then
      . /usr/local/share/bash-completion/bash_completion
    fi

বাশ 3

আপনি যদি ম্যাকোজে স্টক ব্যাশ 3.x দিয়ে স্টিক করতে চান তবে পরিবর্তে এই দিকনির্দেশগুলি অনুসরণ করুন।

  1. চালান:

    brew install bash-completion
  2. এতে যুক্ত করুন ~/.bash_profile:

    echo "[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion" >> ~/.bash_profile

তথ্যসূত্র: http://davidalger.com/development/bash-completion-on-os-x-with-brew/


-2

আমি মনে করি আপনি সম্ভবত আপনার লগইনে ফাইলটি সোর্সিং করতে ভুলে গেছেন .bashrc, আপনি এর মতো কিছু যুক্ত করতে পারেন:

. ./path/to/your/file.ext

ব্যবহার করা .একটি স্থান দ্বারা অনুসরণ বর্তমান প্রেক্ষাপটে ফাইল চালানো হয়।

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