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

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

7
วิธีการใช้คำขอดึงต้นน้ำที่ไม่ได้จมจากส้อมอื่น ๆ เข้ากับส้อมของฉันได้อย่างไร
โครงการบน GitHub ที่ฉันมีทางแยกมีคำขอดึงใหม่ที่ฉันต้องการดึงเข้าสู่ทางแยกของฉันที่ผู้เขียนยังไม่ได้ดึงเข้ามา มีวิธีง่ายๆในการใช้คำขอดึงจากส้อมอื่น ๆ ในส้อมของฉัน? มีอะไรอีกบ้างไหมที่ฉันหายไป?
465 git  github  pull-request 

10
ใช้ Git แสดงการกระทำทั้งหมดที่อยู่ในสาขาเดียว แต่ไม่ใช่ทั้งหมด
ฉันมีสาขาเก่าซึ่งฉันต้องการลบ อย่างไรก็ตามก่อนที่จะทำเช่นนั้นฉันต้องการตรวจสอบว่าการกระทำทั้งหมดที่ทำกับสาขานี้อยู่ในบางจุดที่รวมเข้ากับสาขาอื่น ดังนั้นฉันต้องการเห็นข้อผูกพันทั้งหมดที่เกิดขึ้นกับสาขาปัจจุบันของฉันซึ่งไม่ได้นำไปใช้กับสาขาอื่น [หรือถ้าเป็นไปไม่ได้หากไม่มีสคริปต์บางตัวเราจะเห็นความมุ่งมั่นทั้งหมดในสาขาเดียวที่ไม่ได้นำไปใช้ ไปยังสาขาอื่นที่กำหนด?]
465 git  branch  git-branch 

12
เอาต์พุตที่สั้นที่สุดที่เป็นไปได้จากบันทึก git ที่มีผู้แต่งและวันที่
ฉันจะแสดงผลบันทึก git ด้วย (อย่างน้อย) ข้อมูลนี้ได้อย่างไร: * author * commit date * change ฉันต้องการให้มันบีบอัดหนึ่งบรรทัดต่อรายการบันทึก รูปแบบที่สั้นที่สุดที่เป็นไปได้คืออะไร (พยายาม--format=onelineแต่ไม่แสดงวันที่)
465 git  formatting  logging 

12
การแก้ไขข้อขัดแย้ง Git ด้วยไฟล์ไบนารี
ฉันใช้ Git บน Windows (msysgit) เพื่อติดตามการเปลี่ยนแปลงสำหรับงานออกแบบบางอย่างที่ฉันทำ วันนี้ฉันได้ทำงานกับพีซีเครื่องอื่น (ด้วย repo ระยะไกลbrian) และตอนนี้ฉันพยายามรวมการแก้ไขที่ทำในวันนี้กลับเป็นเวอร์ชันท้องถิ่นของฉันบนแล็ปท็อปของฉัน บนแล็ปท็อปของฉันฉันเคยgit pull brian masterดึงการเปลี่ยนแปลงเป็นเวอร์ชันในเครื่องของฉัน ทุกอย่างแตกต่างจากเอกสาร InDesign หลัก - นี่แสดงว่าเป็นข้อขัดแย้ง เวอร์ชั่นบนพีซี ( brian) เป็นเวอร์ชั่นล่าสุดที่ฉันต้องการเก็บไว้ แต่ฉันไม่รู้ว่าคำสั่งใดบอกให้ repo ใช้อันนี้ ฉันพยายามคัดลอกไฟล์ไปยังแล็ปท็อปของฉันโดยตรง แต่สิ่งนี้ดูเหมือนว่าจะเป็นการขัดจังหวะกระบวนการทั้งหมด ใครช่วยชี้ฉันในทิศทางที่ถูกต้องได้ไหม

9
วิธีการแปลงคู่คีย์ SSH ที่สร้างโดยใช้ PuTTYgen (Windows) เป็นคู่คีย์ที่ใช้โดย ssh-agent และ Keychain (Linux)
ฉันสร้างคู่คีย์โดยใช้ PuTTYgen และเข้าสู่ระบบโดยใช้ Pageant เพื่อที่ฉันจะต้องป้อนวลีรหัสผ่านของฉันเพียงครั้งเดียวเมื่อระบบของฉันบูท ฉันจะทำสิ่งนี้ได้อย่างไรใน Linux? ฉันได้ยินมาkeychainแต่ฉันได้ยินว่ามันใช้รูปแบบคู่ของคีย์ที่แตกต่างกัน - ฉันไม่ต้องการเปลี่ยนคีย์ Windows ของฉันและมันจะดีถ้าฉันสามารถเชื่อมต่อได้อย่างราบรื่นในลักษณะเดียวกันทั้งใน Windows และ Linux

11
เลิกทำ git update-index - สมมติว่าไม่เปลี่ยนแปลง <file>
วิธีที่คุณ Git เพิกเฉยต่อการดู / ติดตามไฟล์ / ไฟล์ที่ต้องการ คุณเรียกใช้สิ่งนี้: git update-index --assume-unchanged &lt;file&gt; ตอนนี้คุณจะยกเลิกได้อย่างไรเพื่อให้พวกเขาดูอีกครั้ง (เราเรียกมันว่ายกเลิกการสันนิษฐาน)

23
วิธีรับชื่อแท็กล่าสุดในสาขาปัจจุบันใน Git
วิธีที่ง่ายที่สุดในการรับแท็กล่าสุดใน Git คืออะไร git tag a HEAD git tag b HEAD^^ git tag c HEAD^ git tag เอาท์พุท: a b c ฉันควรเขียนสคริปต์เพื่อให้ได้รับวันที่และเวลาของแท็กและเปรียบเทียบได้อย่างไร

4
วิธีเพิ่มไฟล์ที่เปลี่ยนแปลงไปยังคอมมิชชันเก่า (ไม่ใช่ครั้งสุดท้าย) ใน Git
ฉันเปลี่ยนหลายสิ่งในชั่วโมงที่ผ่านมาและยืนยันทีละขั้นตอน แต่ฉันเพิ่งรู้ว่าฉันลืมเพิ่มไฟล์ที่เปลี่ยนแปลงบางคอมมิชชันที่แล้ว บันทึกมีลักษณะดังนี้: GIT TidyUpRequests u:1 d:0&gt; git log commit fc6734b6351f6c36a587dba6dbd9d5efa30c09ce Author: David Klein &lt;&gt; Date: Tue Apr 27 09:43:55 2010 +0200 The Main program now tests both Webservices at once commit 8a2c6014c2b035e37aebd310a6393a1ecb39f463 Author: David Klein &lt;&gt; Date: Tue Apr 27 09:43:27 2010 +0200 ISBNDBQueryHandler now uses the XPath functions …
461 git 

8
จะแตกต่างคอมมิชชันกับพาเรนต์ได้อย่างไร?
นอกเหนือจากการเขียนนามแฝงหรือสคริปต์แล้วยังมีคำสั่งที่สั้นกว่าสำหรับการรับส่วนต่างสำหรับการคอมมิชชันเฉพาะหรือไม่? git diff 15dc8^..15dc8 หากคุณให้ ID การคอมมิทเพียงครั้งเดียวgit diff 15dc8มันจะแตกต่างที่กระทำกับ HEAD
460 git  git-diff 

10
ย้ายมุ่งมั่น (แต่ไม่ผลัก) การเปลี่ยนแปลงไปยังสาขาใหม่หลังจากดึง
ฉันได้ทำงานนิดหน่อย ("สาขาของคุณอยู่ก่อนหน้า 'ต้นกำเนิด / ปรมาจารย์' โดยมีความมุ่งมั่น 37 อย่าง") ซึ่งจริง ๆ แล้วควรเข้าไปในสาขาของตัวเองมากกว่าเข้าmasterมา การกระทำเหล่านี้มีอยู่ในเครื่องของฉันเท่านั้นและไม่ได้ถูกผลักไปoriginแต่สถานการณ์นั้นค่อนข้างซับซ้อนใน devs อื่น ๆ ที่ได้รับการผลักดันorigin/masterและฉันได้ทำการเปลี่ยนแปลงเหล่านั้นแล้ว ฉันจะย้ายการตอบรับในพื้นที่ 37 แห่งไปยังสาขาใหม่ได้อย่างไร จากเอกสารพบว่าgit rebase --onto my-new-branch masterหรือ...origin/masterควรทำเช่นนี้ แต่ทั้งคู่ก็ให้ข้อผิดพลาด "ร้ายแรง: จำเป็นต้องมีการแก้ไขครั้งเดียว" man git-rebaseไม่ได้พูดอะไรเกี่ยวกับการให้การแก้ไขrebaseและตัวอย่างของมันไม่ทำดังนั้นฉันจึงไม่รู้ว่าจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร (โปรดทราบว่านี่ไม่ใช่งานซ้ำของMove ที่มีอยู่ไม่ได้ผูกมัดกับสาขาใหม่ใน Gitหรือจะรวมการเปลี่ยนแปลงในพื้นที่ของฉันเข้ากับ Git สาขาอื่นได้อย่างไรเนื่องจากคำถามเหล่านั้นจัดการกับการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดในแผนผังการทำงานท้องถิ่น มุ่งมั่นในท้องถิ่น)
460 git 

24
วิธีการนับจำนวนบรรทัดทั้งหมดที่เปลี่ยนแปลงโดยผู้เขียนเฉพาะในที่เก็บ Git?
มีคำสั่งที่ฉันสามารถเรียกใช้ซึ่งจะนับบรรทัดที่เปลี่ยนแปลงโดยผู้แต่งเฉพาะในที่เก็บ Git หรือไม่? ฉันรู้ว่าต้องมีวิธีนับจำนวนการคอมมิชชันที่ Github ทำกับกราฟผลกระทบ

12
ฉันจะเปลี่ยนชื่อทั้งชื่อท้องถิ่นและสาขาของ Git ในระยะไกลได้อย่างไร
ฉันมีสี่สาขาเช่น master -&gt; origin / regacy, FeatureA -&gt; origin / FeatureA อย่างที่คุณเห็นฉันพิมพ์ชื่อผิด ดังนั้นฉันจึงต้องการเปลี่ยนชื่อชื่อสาขาระยะไกล (Origin / regacy → origin / legacy หรือ origin / master) ฉันลองคำสั่งด้านล่าง: git remote rename regacy legacy แต่คอนโซล Git ส่งคืนข้อความแสดงข้อผิดพลาดให้ฉัน error : Could not rename config section 'remote.regacy' to 'remote.legacy' ฉันจะแก้ปัญหานี้ได้อย่างไร


22
ค้นหาจุดสาขาด้วย Git หรือไม่
ฉันมีพื้นที่เก็บข้อมูลที่มีกิ่งสาขาและ A และกิจกรรมการรวมจำนวนมากระหว่างสองแห่ง ฉันจะค้นหาการคอมมิชชันในที่เก็บของฉันได้อย่างไรเมื่อสร้างกสาขา A ตามมาสเตอร์ พื้นที่เก็บข้อมูลของฉันโดยทั่วไปมีลักษณะเช่นนี้: -- X -- A -- B -- C -- D -- F (master) \ / \ / \ / \ / G -- H -- I -- J (branch A) ฉันกำลังมองหาการแก้ไข A ซึ่งไม่ใช่สิ่งที่git merge-base (--all)พบ
455 git  branch 

8
วิธี unstage ไฟล์จำนวนมากโดยไม่ลบเนื้อหา
ฉันบังเอิญเพิ่มไฟล์ชั่วคราวจำนวนมากโดยใช้ git add -A ฉันจัดการเพื่อ unstage ไฟล์โดยใช้คำสั่งต่อไปนี้และจัดการเพื่อลบดัชนีสกปรก git ls-files -z | xargs -0 rm -f git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached git help rmคำสั่งดังกล่าวข้างต้นมีการระบุไว้ใน แต่น่าเสียดายที่ไฟล์ของฉันถูกลบด้วยเช่นกันแม้ว่าฉันจะมีตัวเลือกแคชก็ตาม ฉันจะล้างดัชนีโดยไม่สูญเสียเนื้อหาได้อย่างไร นอกจากนี้ยังจะเป็นประโยชน์หากมีใครสามารถอธิบายวิธีการทำงานของท่อนี้ได้

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