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

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

8
ย้ายงานที่ไม่มีอยู่แล้วไปยังสาขาใหม่ใน Git
ฉันเริ่มทำงานกับคุณสมบัติใหม่และหลังจากเขียนโค้ดสักหน่อยฉันคิดว่าคุณสมบัตินี้ควรอยู่ในสาขาของตัวเอง ฉันจะย้ายการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดที่มีอยู่ไปยังสาขาใหม่และรีเซ็ตการตั้งค่าปัจจุบันของฉันได้อย่างไร ฉันต้องการรีเซ็ตสาขาปัจจุบันของฉันในขณะที่รักษางานที่มีอยู่ในคุณสมบัติใหม่

24
ดูประวัติการเปลี่ยนแปลงของไฟล์โดยใช้เวอร์ชัน Git
ฉันจะดูประวัติการเปลี่ยนแปลงของไฟล์แต่ละไฟล์ใน Git ได้อย่างไรรายละเอียดที่สมบูรณ์เกี่ยวกับสิ่งที่เปลี่ยนแปลงไป? ฉันได้เท่าที่: git log -- [filename] ซึ่งแสดงประวัติการกระทำของไฟล์ แต่ฉันจะดูเนื้อหาของแต่ละไฟล์ได้อย่างไร ฉันพยายามที่จะทำให้การเปลี่ยนแปลงจาก MS SourceSafe และที่เคยเป็นที่เรียบง่าย→right-clickshow history
3088 git  git-log 


10
ลบไฟล์ออกจากที่เก็บ Git โดยไม่ต้องลบออกจากระบบไฟล์ในเครื่อง
ความมุ่งมั่นครั้งแรกของฉันมีไฟล์บันทึกบางส่วน ฉันเพิ่มลง*logในของฉัน.gitignoreแล้วและตอนนี้ฉันต้องการลบไฟล์บันทึกจากที่เก็บของฉัน git rm mylogfile.log จะลบไฟล์ออกจากที่เก็บ แต่จะลบออกจากระบบไฟล์โลคัลด้วย ฉันจะลบไฟล์นี้จาก repo โดยไม่ต้องลบไฟล์ในเครื่องได้อย่างไร


27
ค้นหาและกู้คืนไฟล์ที่ถูกลบในที่เก็บ Git
พูดว่าฉันอยู่ในที่เก็บ Git ฉันลบไฟล์และยอมรับการเปลี่ยนแปลงนั้น ฉันทำงานต่อไปและเพิ่มความมุ่งมั่น จากนั้นฉันพบว่าฉันจำเป็นต้องกู้คืนไฟล์นั้น ฉันรู้ว่าฉันสามารถเช็คเอาต์ไฟล์โดยใช้git checkout HEAD^ foo.barแต่ฉันไม่รู้จริง ๆ ว่าไฟล์นั้นถูกลบเมื่อใด อะไรจะเป็นวิธีที่เร็วที่สุดในการค้นหาการกระทำที่ลบชื่อไฟล์ที่กำหนด? อะไรจะเป็นวิธีที่ง่ายที่สุดในการนำไฟล์นั้นกลับมาไว้ในสำเนาการทำงาน ฉันหวังว่าฉันไม่จำเป็นต้องเรียกดูบันทึกของฉันด้วยตนเองเช็คเอาต์โครงการทั้งหมดสำหรับ SHA ที่ระบุจากนั้นคัดลอกไฟล์นั้นลงในการตรวจสอบโครงการต้นฉบับของฉัน
2802 git  file-io  git-checkout 

29
จะแสดงรายการไฟล์ทั้งหมดในคอมมิทได้อย่างไร?
ฉันกำลังมองหาgitคำสั่งง่ายๆที่ให้รายชื่อไฟล์ทั้งหมดในรูปแบบที่เป็นส่วนหนึ่งของการคอมมิทที่กำหนดโดยแฮช (SHA1) โดยไม่มีข้อมูลภายนอก ฉันเหนื่อย: git show a303aa90779efdd2f6b9d90693e2cbbbe4613c1d แม้ว่าจะแสดงรายการไฟล์ แต่ยังรวมถึงข้อมูล diff ที่ไม่ต้องการสำหรับแต่ละไฟล์ มีgitคำสั่งอื่นที่จะให้เฉพาะรายการที่ฉันต้องการเพื่อให้ฉันสามารถหลีกเลี่ยงการแยกคำสั่งจากgit showเอาต์พุตหรือไม่?
2792 git  git-show 

23
ยอมรับเฉพาะส่วนหนึ่งของไฟล์ใน Git
เมื่อฉันทำการเปลี่ยนแปลงไฟล์ใน Git ฉันจะยอมรับการเปลี่ยนแปลงบางอย่างได้อย่างไร ตัวอย่างเช่นฉันจะส่ง 15 บรรทัดจาก 30 บรรทัดที่มีการเปลี่ยนแปลงในไฟล์ได้อย่างไร
2764 git  git-commit 

30
ข้อความ 'src refspec master ไม่ตรงกับ' เมื่อกดคอมมิทใน Git
ฉันโคลนที่เก็บของฉันด้วย: git clone ssh://xxxxx/xx.git แต่หลังจากที่ผมเปลี่ยนบางไฟล์และaddและcommitพวกเขาก็ต้องการที่จะผลักดันพวกเขาไปยังเซิร์ฟเวอร์: git add xxx.php git commit -m "TEST" git push origin master แต่ข้อผิดพลาดที่ฉันได้รับกลับมาคือ: error: src refspec master does not match any. error: failed to push some refs to 'ssh://xxxxx.com/project.git'
2689 git  commit 

30
จะรับชื่อสาขาปัจจุบันใน Git ได้อย่างไร?
ฉันมาจากพื้นหลังการโค่นล้มและเมื่อฉันมีสาขาฉันรู้ว่าฉันกำลังทำงานกับ "ไฟล์งานเหล่านี้ชี้ไปที่สาขานี้" แต่ด้วย Git ฉันไม่แน่ใจเมื่อฉันแก้ไขไฟล์ใน NetBeans หรือ Notepad ++ ไม่ว่าจะเชื่อมโยงกับต้นแบบหรือสาขาอื่น ไม่มีปัญหาgitในการทุบตีมันบอกฉันว่าฉันกำลังทำอะไรอยู่
2591 git  branch  git-branch 

24
ฉันจะทำให้ Git ใช้เครื่องมือแก้ไขที่ฉันเลือกได้อย่างไร
ฉันต้องการเขียนข้อความคอมมิชชันของฉันใน Vim แต่มันเปิดไว้ใน Emacs ฉันจะกำหนดค่า Git ให้ใช้ Vim ได้อย่างไร? โปรดทราบว่าฉันต้องการทำเช่นนี้ทั่วโลกไม่เพียง แต่สำหรับโครงการเดียว
2547 git  vim  emacs  editor  commit-message 

13
ฉันพบความขัดแย้งในการผสาน ฉันจะยกเลิกการรวมได้อย่างไร
ฉันใช้git pullและมีข้อขัดแย้งที่ผสาน: unmerged: _widget.html.erb You are in the middle of a conflicted merge. ฉันรู้ว่าไฟล์รุ่นอื่นดีและของฉันนั้นแย่ดังนั้นการเปลี่ยนแปลงทั้งหมดของฉันควรถูกยกเลิก ฉันจะทำสิ่งนี้ได้อย่างไร

30
จะเปลี่ยนชื่อผู้แต่งและผู้ส่งและอีเมลของคอมมิทหลายรายการใน Git ได้อย่างไร?
Наэтотвопросестьответына กองมากเกินнарусском : Поменятьуавтораикоммитераемейлиимя вовсехкоммитах ฉันกำลังเขียนสคริปต์ง่ายๆในคอมพิวเตอร์ของโรงเรียนและคอมมิชชันการเปลี่ยนแปลง Git (ใน repo ที่อยู่ใน pendrive ของฉันโคลนจากคอมพิวเตอร์ของฉันที่บ้าน) หลังจากการคอมมิทหลายครั้งฉันรู้ว่าฉันกำลังคอมมิทในฐานะผู้ใช้รูท มีวิธีใดที่จะเปลี่ยนผู้สร้างสิ่งเหล่านี้ให้เป็นชื่อของฉัน?

30
ทำ "ส่งออก git" (เช่น "ส่งออก svn") หรือไม่
ฉันสงสัยว่ามีทางออกที่ดี "git ส่งออก" ที่สร้างสำเนาของต้นไม้โดยไม่มี.gitไดเรกทอรีพื้นที่เก็บข้อมูล มีอย่างน้อยสามวิธีที่ฉันรู้: git cloneตามด้วยการลบ.gitไดเรกทอรีที่เก็บ git checkout-index alludes ฟังก์ชั่นนี้ แต่เริ่มต้นด้วย "เพียงแค่อ่านต้นไม้ที่ต้องการลงในดัชนี ... " ซึ่งฉันไม่แน่ใจว่าจะทำอย่างไร git-exportเป็นสคริปต์ของบุคคลที่สามที่ทำหน้าที่git cloneเป็นสถานที่ชั่วคราวตามด้วยrsync --exclude='.git'ปลายทางสุดท้าย ไม่มีวิธีแก้ปัญหาใดที่ทำให้ฉันพอใจ หนึ่งที่ใกล้เคียงที่สุดsvn exportอาจเป็นตัวเลือก 1 เนื่องจากทั้งคู่ต้องการไดเรกทอรีไดเรกทอรีให้ว่างก่อน แต่ตัวเลือกที่ 2 นั้นดูดีกว่าโดยสมมติว่าฉันสามารถเข้าใจความหมายของการอ่านต้นไม้ในดัชนี


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