คำถามติดแท็ก git

Git เป็นระบบควบคุมเวอร์ชันแจกจ่ายแบบโอเพนซอร์ซ (DVCS) ใช้แท็กนี้สำหรับคำถามที่เกี่ยวข้องกับการใช้งาน Git และเวิร์กโฟลว์ อย่าใช้แท็ก [github] สำหรับปัญหาที่เกี่ยวข้องกับ Git เพียงเพราะพื้นที่เก็บข้อมูลเกิดขึ้นเพื่อโฮสต์บน GitHub นอกจากนี้อย่าใช้แท็กนี้สำหรับคำถามการเขียนโปรแกรมทั่วไปที่เกี่ยวข้องกับที่เก็บ Git

18
(Mac) -bash: __git_ps1: ไม่พบคำสั่ง
ฉันพยายามเปลี่ยน promt command ใน terminal ฉันได้รับข้อผิดพลาด: -bash: __git_ps1: command not found __git_ps1ฉันได้พยายามมันเพียงแค่พิมพ์ลงในสถานีเป็น: ฉันยังลองใน.bash_profile if [ -f ~/.git-completion.bash ]; then source ~/.git-completion.bash export PS1='[\W]$(__git_ps1 "(%s)"): ' fi ในขณะที่คุณสามารถดู / บอกใช่ฉันมีการติดตั้งการเติมข้อความอัตโนมัติและมันใช้งานได้ดีมาก! ฉันเจอคำถามนี้: " ตัวแปร env PS1 ไม่ทำงานบน mac " ซึ่งให้รหัส alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'" ดังนั้นฉันจึงเพิ่มมันเข้าไปในความ.bash_profileหวังของฉันว่ามันจะเปลี่ยนอะไรบางอย่าง …
222 macos  git  terminal  ps1 

5
การใช้อักขระทับในชื่อสาขา Git
ฉันค่อนข้างแน่ใจว่าฉันเห็นที่ไหนสักแห่งในโครงการ Git ยอดนิยมสาขามีรูปแบบเช่น "feature / xyz" อย่างไรก็ตามเมื่อฉันพยายามสร้างสาขาด้วยอักขระทับฉันได้รับข้อผิดพลาด: $ git branch labs/feature error: unable to resolve reference refs/heads/labs/feature: Not a directory fatal: Failed to lock ref for update: Not a directory ปัญหาเดียวกันสำหรับ (ความพยายามครั้งแรกของฉัน): $ git checkout -b labs/feature เราจะสร้างสาขาใน Git ด้วยอักขระทับได้อย่างไร
222 git  branch 

23
สถานะ git แสดงการแก้ไข git checkout - <file> ไม่ได้ลบออก
ฉันต้องการลบการเปลี่ยนแปลงทั้งหมดในสำเนาการทำงานของฉัน การรันgit statusรายการไฟล์ที่ถูกแก้ไข ดูเหมือนว่าฉันจะไม่ลบสิ่งดัดแปลงเหล่านี้ออก เช่น: rbellamy@PROMETHEUS /d/Development/rhino-etl (master) $ git status # On branch master # Changed but not updated: # (use "git add &lt;file&gt;..." to update what will be committed) # (use "git checkout -- &lt;file&gt;..." to discard changes in working directory) # # modified: Rhino.Etl.Core/Enumerables/CachingEnumerable.cs # modified: Rhino.Etl.Core/Pipelines/SingleThreadedPipelineExecuter.cs …

5
วิธีการแสดงเฉพาะส่วนของไฟล์ใหม่ด้วย git?
ฉันรัก คอมไพล์เพิ่ม --interactive ตอนนี้เป็นส่วนหนึ่งของกระบวนการทำงานประจำวันของฉัน ปัญหาดูเหมือนว่าจะไม่ทำงานกับไฟล์ที่ไม่ได้ติดตาม สิ่งที่ฉันต้องการทำคือติดตามไฟล์ใหม่ แต่เพิ่มเฉพาะบางส่วนนั่นคือบางส่วนของไฟล์ใหม่นี้ยังไม่พร้อมที่จะจัดแสดง ตัวอย่างเช่นด้วย git add -i ฉันสามารถเลือกตัวเลือกการแก้ไขและแม้แต่แก้ไข hunks แต่ละรายการเพื่อแยกส่วนของรหัสใหม่ออกไป ฉันชอบทำงานในลักษณะนี้เพราะมันทำให้เห็นชัดว่าสถานที่ของโปรแกรมแก้ไข mega ที่ฉันกำลังทำงานอยู่ยังต้องการงาน น่าเสียดายที่ฉันไม่สามารถทำเช่นเดียวกันกับไฟล์ที่ไม่ได้ติดตาม ไม่ว่าฉันจะวางไฟล์ทั้งหมดหรือไม่มีอะไรเลย วิธีแก้ปัญหาที่ฉันใช้อยู่คือการจัดเตรียมหรือแม้แต่การคอมมิทไฟล์ใหม่เมื่อไฟล์นั้นว่างเปล่าจากนั้นจัดเตรียมการเปลี่ยนแปลงแต่ละอย่างตามปกติ แต่วิธีนี้รู้สึกเหมือนแฮ็คสกปรกและเมื่อฉันลืมหรือเปลี่ยนความคิดของฉันมันสร้างปัญหามากกว่าที่ควรจะเป็น ดังนั้นคำถามคือ: ขั้นตอนจะเป็นเพียงส่วนหนึ่งของไฟล์ใหม่เพื่อให้ไฟล์ใหม่นี้ได้รับการติดตาม แต่ปล่อยให้เนื้อหาทั้งหมดหรือบางส่วนไม่คงที่?
222 git 

9
ฉันจะสร้าง Git ได้อย่างไรในอดีต?
ฉันกำลังแปลงทุกอย่างเป็น Git เพื่อการใช้งานส่วนตัวของฉันเองและฉันพบไฟล์รุ่นเก่าในที่เก็บอยู่แล้ว ฉันจะยอมรับประวัติโดยเรียงตามลำดับที่ถูกต้องตาม "วันที่แก้ไขไฟล์" ดังนั้นฉันจึงมีประวัติที่ถูกต้องของไฟล์? ฉันบอกว่าบางอย่างเช่นนี้จะทำงาน: git filter-branch --env-filter="GIT_AUTHOR_DATE=... --index-filter "git commit path/to/file --date " --tag-name-filter cat -- --all

9
ฉันจะสลับไปยังสาขาอื่นในคอมไพล์ได้อย่างไร?
บรรทัดใดในบรรทัดเหล่านี้ที่ถูกต้อง git checkout 'another_branch' หรือ git checkout origin 'another_branch' หรือ git checkout origin/'another_branch' และความแตกต่างระหว่างเส้นเหล่านี้คืออะไร?

16
ข้อผิดพลาดของ Git:“ การตรวจสอบความถูกต้องของโฮสต์ไม่สำเร็จ” เมื่อเชื่อมต่อกับที่เก็บข้อมูลระยะไกล
ฉันกำลังพยายามเชื่อมต่อกับที่เก็บ Git ระยะไกลที่อยู่บนเว็บเซิร์ฟเวอร์ของฉันและโคลนไปยังเครื่องของฉัน ฉันใช้รูปแบบต่อไปนี้สำหรับคำสั่งของฉัน: git clone ssh://username@domain.com/repository.git สิ่งนี้ได้ผลดีสำหรับสมาชิกในทีมของฉัน โดยปกติหลังจากรันคำสั่งนี้ Git จะถามรหัสผ่านของผู้ใช้แล้วเรียกใช้การโคลน อย่างไรก็ตามเมื่อทำงานกับหนึ่งในเครื่องของฉันฉันได้รับข้อผิดพลาดต่อไปนี้: การยืนยันคีย์โฮสต์ล้มเหลว ร้ายแรง: ไม่สามารถอ่านจากที่เก็บระยะไกล เราไม่ได้ใช้กุญแจ SSH เพื่อเชื่อมต่อกับพื้นที่เก็บข้อมูลนี้ดังนั้นฉันไม่แน่ใจว่าทำไม Git ถึงตรวจสอบรหัสบนเครื่องนี้
222 git  ssh  ssh-keys 

5
FETCH_HEAD ใน Git หมายถึงอะไร
git pull --help พูดว่า: ในโหมดเริ่มต้นของgit pullคือชวเลขตามมาด้วยgit fetchgit merge FETCH_HEAD นี้คืออะไรFETCH_HEADและสิ่งที่ผสานระหว่างจริงgit pull?
221 git  git-pull  git-fetch 

7
จะใช้โปรแกรมปะแก้ที่สร้างด้วย git format-patch ได้อย่างไร?
ฉันมีที่เก็บโลคัล 2 git ทั้งคู่ชี้ไปที่ที่เก็บรีโมตเดียวกัน ในที่เก็บ git หนึ่งถ้าฉันทำได้ฉันจะgit format-patch 1ใช้โปรแกรมแก้ไขนั้นกับที่เก็บอื่นได้อย่างไร
221 git  patch 

21
ดึงไฟล์เดียวจากที่เก็บ
กลไกที่มีประสิทธิภาพมากที่สุดคืออะไร (เกี่ยวกับการถ่ายโอนข้อมูลและพื้นที่ดิสก์ที่ใช้) เพื่อรับเนื้อหาของไฟล์เดียวจากที่เก็บรีโมต git? จนถึงตอนนี้ฉันก็มาถึง: git clone --no-checkout --depth 1 git@github.com:foo/bar.git &amp;&amp; cd bar &amp;&amp; git show HEAD:path/to/file.txt ดูเหมือนว่าจะยังเกินความเป็นจริงอยู่ สิ่งที่เกี่ยวกับการรับหลายไฟล์จาก repo

7
การแปลงบรรทัดสิ้นสุดทำงานกับ git core.autocrlf ระหว่างระบบปฏิบัติการที่แตกต่างกันอย่างไร
ฉันได้อ่านคำถามและคำตอบที่แตกต่างกันมากมายใน Stack Overflow รวมถึงเอกสารgitว่าการตั้งค่าcore.autocrlfทำงานอย่างไร นี่คือความเข้าใจของฉันจากสิ่งที่ฉันได้อ่าน: Unix และ Mac OSX (pre-OSX ใช้ CR) ไคลเอ็นต์ใช้ปลายสาย LF ไคลเอนต์ Windows ใช้การสิ้นสุดบรรทัด CRLF เมื่อ core.autocrlf ถูกตั้งค่าเป็นจริงบนไคลเอนต์ที่เก็บ git มักจะเก็บไฟล์ในรูปแบบสิ้นสุดบรรทัด LF และสิ้นสุดบรรทัดในไฟล์บนไคลเอนต์จะถูกแปลงไปมาเมื่อตรวจสอบ / กระทำสำหรับลูกค้า (เช่น Windows) ที่ใช้ไม่ใช่ -LF การจบบรรทัดไม่ว่ารูปแบบไฟล์ไฟล์การจบบรรทัดจะอยู่บนไคลเอนต์ (ไม่เห็นด้วยกับคำจำกัดความของ Tim Clem - ดูการอัปเดตด้านล่าง) นี่คือเมทริกซ์ที่พยายามจัดทำเอกสารเดียวกันสำหรับการตั้งค่า 'อินพุต' และ 'เท็จ' ของ core.autocrlf พร้อมเครื่องหมายคำถามซึ่งฉันไม่แน่ใจว่าพฤติกรรมการแปลงบรรทัดสิ้นสุดแล้ว คำถามของฉันคือ: เครื่องหมายคำถามควรเป็นอย่างไร เมทริกซ์นี้ถูกต้องสำหรับ "เครื่องหมายที่ไม่ใช่คำถาม" หรือไม่? ฉันจะอัปเดตเครื่องหมายคำถามจากคำตอบเนื่องจากดูเหมือนว่าจะเกิดขึ้น …

16
ทำให้ git ลบช่องว่างต่อท้ายโดยอัตโนมัติก่อนคอมมิท
ฉันใช้คอมไพล์กับทีมของฉันและต้องการลบการเปลี่ยนแปลงช่องว่างจากดิฟบันทึกการผสาน ฯลฯ ฉันคิดว่าวิธีที่ง่ายที่สุดในการทำเช่นนี้คือการใช้คอมไพล์ในการลบช่องว่างต่อท้ายออกโดยอัตโนมัติ ) จากการกระทำทั้งหมดที่ใช้ ฉันพยายามเพิ่มไฟล์ต่อไปนี้ตาม~/.gitconfigไฟล์ แต่ไม่ได้ทำอะไรเมื่อฉันส่งมอบ อาจจะออกแบบมาเพื่อสิ่งที่แตกต่าง ทางออกคืออะไร? [core] whitespace = trailing-space,space-before-tab [apply] whitespace = fix ฉันใช้ทับทิมในกรณีที่มีใครมีความคิดเฉพาะทับทิม การจัดรูปแบบรหัสอัตโนมัติก่อนที่จะส่งมอบจะเป็นขั้นตอนต่อไป แต่นั่นเป็นปัญหาที่ยากและไม่ก่อให้เกิดปัญหาใหญ่จริงๆ
220 git  whitespace  githooks 


30
คอมไพล์เพิ่มกระทำและผลักดันคำสั่งในหนึ่ง?
มีวิธีการใช้สามคำสั่งเหล่านี้ในหนึ่งเดียว? git add . git commit -a -m "commit" (do not need commit message either) git push บางครั้งฉันเปลี่ยนจดหมายเพียงฉบับเดียวมีการขยาย CSS หรืออะไรบางอย่าง ถึงกระนั้นฉันต้องเขียนทั้งสามคำสั่งเพื่อผลักดันการเปลี่ยนแปลง มีหลายโครงการที่ฉันเป็นเพียงผู้ดันหนึ่งคนดังนั้นคำสั่งนี้จะยอดเยี่ยม!
220 git 


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