ฉันเพิ่ม __git_ps1 ไปยัง PS1 ของฉันใน. bash_profile ตอนนี้ฉันได้รับ (ปรมาจารย์) สำหรับทุกโฟลเดอร์ที่ไม่ใช่ git repos


1

ฉันใช้ Mac (10.6.5) นี่คือตัวอย่างของสิ่งที่ผิดปกติ:

[m@m ~ (master)]$ cd ~/Documents
[m@m ~/Documents (master)]$ cd ~/Applications
[m@m ~/Applications (master)]$ cd ~/Library
[m@m ~/Library (master)]$ cd ~/Sites/somesite
[m@m ~/Sites/somerepo (FEATURE_SOMEFEATURE)]$

นี่คือเนื้อหาที่เกี่ยวข้องของ. bash_profile ของฉัน:

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

ฉันกำลังใช้สคริปต์ git-completion มาตรฐาน - ฉันเพิ่งคัดลอกมันไปยังไดเรกทอรีบ้านของฉัน

คำตอบ:


1

ฉันสงสัยว่าคุณได้เริ่มต้นไดเรกทอรีบ้านของคุณเป็นพื้นที่เก็บข้อมูล Git

คุณควรจะสามารถตรวจสอบได้โดยตรวจสอบผลลัพธ์ของ git rev-parse --git-dir ใน ~/Documents และ ~/Applications (เช่นที่ใดก็ตามที่คุณเห็นโดยไม่คาดคิด เจ้านาย ในพรอมต์ของคุณ) ผลลัพธ์น่าจะบอกคุณได้ว่า Git กำลังใช้งานอยู่ /Users/yourname/.git เป็น GIT_DIR สำหรับไดเรกทอรีอื่น ๆ นี่จะเป็นกรณีของไดเรกทอรีย่อยใด ๆ (สกรรมกริยา) ของโฮมไดเร็กตอรี่ของคุณที่ไม่ได้เป็นที่เก็บของตัวเอง

สิ่งเดียวกันก็คือการมีไดเรกทอรีรากหรือ /Users เริ่มต้นเป็นพื้นที่เก็บข้อมูล Git (พร้อมท์จะรับสถานะสำหรับสิ่งใดก็ตามภายใต้พวกเขาที่ไม่ใช่ที่เก็บ Git ของตัวเอง (หรือภายใต้พื้นที่เก็บข้อมูล Git อื่น)


2

นี่เป็นข้อบกพร่องใน __git_ps1 ปัญหาคือชื่อสาขาไม่ได้รับการอัปเดตหลังจากคุณเปลี่ยนไดเรกทอรี แม้หลังจากตรวจสอบสาขาอื่นแล้ว PS1 ยังคงแสดงสาขาที่คุณเช็คเอาต์ก่อน ปรากฏบน OS X เท่านั้นบน Linux มันใช้งานได้ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.