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

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

4
Git กระทำการวันที่
นอกเหนือจากการวิเคราะห์บันทึก git สำหรับสตริงวันที่มีวิธีการพื้นเมือง Git เพื่อรายงานวันที่กระทำบางอย่าง?
192 git 

5
gitignore ไฟล์ทั้งหมดของนามสกุลในไดเรกทอรี
มีวิธีละเว้นไฟล์ทั้งหมดในไดเรกทอรีหรือไม่? ** เห็นได้ชัดว่าไม่มีความหมายต่อคอมไพล์ดังนั้นจึงใช้งานไม่ได้: /public/static/**/*.js แนวคิดคือการจับคู่โฟลเดอร์ที่ซ้อนกันตามอำเภอใจ
192 git  gitignore 

13
ข้อผิดพลาดในการกด Git: ไม่สามารถยกเลิกการเชื่อมโยงเก่าได้ (ปฏิเสธสิทธิ์)
ในเซิร์ฟเวอร์ระยะไกลฉันมีการตั้งค่า hook post-receive เพื่อทำการเช็คเอาต์ git ของที่เก็บของฉัน: #!/bin/sh GIT_WORK_TREE=/var/www/<website> git checkout -f แต่เมื่อฉันกดจากเครื่องในพื้นที่ของฉันไปยังที่เก็บ git ในเซิร์ฟเวอร์ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: remote: error: unable to unlink old '<file>' (Permission denied) ปรากฏขึ้นหลายครั้งข้อความแสดงข้อผิดพลาดเดียวสำหรับเกือบทุกไฟล์ อย่างไรก็ตามฉันมีไฟล์ README.txt ที่ฉันสามารถเปลี่ยนได้โดยใช้ git นี่คือการอนุญาต: -rw-r--r-- 1 <serverusername> <serverusername> 2939 Aug 2 10:58 README.txt แต่ไฟล์อื่น ๆ ที่มีเจ้าของเดียวกันและสิทธิ์เหมือนกันให้ข้อผิดพลาดนั้นกับฉัน ในที่เก็บภายในเครื่องอื่นสำหรับเว็บไซต์อื่นฉันมีไฟล์ที่มีชื่อผู้ใช้เครื่องในท้องถิ่นเป็นเจ้าของและเมื่อฉันกดไปที่เซิร์ฟเวอร์ระยะไกลจะเคารพเจ้าของเซิร์ฟเวอร์ระยะไกลของไฟล์และใช้งานได้อย่างมีเสน่ห์ เห็นได้ชัดว่าดูเหมือนข้อผิดพลาดเกี่ยวกับการอนุญาต แต่ฉันไม่สามารถหาวิธีแก้ไขได้คำแนะนำใด ๆ

3
Resync git repo ด้วยไฟล์. gitignore ใหม่
เป็นไปได้หรือไม่ที่จะ "รีเฟรช" ที่เก็บ git หลังจากอัพเดตไฟล์ gitignore? ฉันเพิ่งเพิ่มการไม่สนใจ (?) ไปยัง gitignore ของฉันและต้องการที่จะลบสิ่งที่มีอยู่แล้วใน repo ที่ตรงกับไฟล์ใหม่
192 git 

5
วิธีคอมไพล์แท็กเฉพาะ
จากgit-clone (1) หน้าคู่มือ --branch ยังสามารถใช้แท็กและแยก HEAD ที่กระทำในที่เก็บผลลัพธ์ ฉันเหนื่อย git clone --branch <tag_name> <repo_url> แต่มันไม่ทำงาน มันกลับมา: warning: Remote branch 2.13.0 not found in upstream origin, using HEAD instead วิธีใช้พารามิเตอร์นี้
192 git  git-clone  git-tag 

15
มีวิธีที่ดีกว่าในการดูว่ามีสาขา git ในพื้นที่หรือไม่?
ฉันใช้คำสั่งต่อไปนี้เพื่อตรวจสอบว่าสาขา git ท้องถิ่นที่มีbranch-nameอยู่ในพื้นที่เก็บข้อมูลของฉัน ถูกต้องหรือไม่ มีวิธีที่ดีกว่า? โปรดทราบว่าฉันกำลังทำสิ่งนี้ภายในสคริปต์ ด้วยเหตุนี้ฉันต้องการใช้คำสั่งการวางท่อถ้าเป็นไปได้ git show-ref --verify --quiet refs/heads/<branch-name> # $? == 0 means local branch with <branch-name> exists.

5
ฉันจะสลับพื้นที่เก็บข้อมูล git ของฉันไปเป็นการกระทำที่เฉพาะเจาะจงได้อย่างไร
ในที่เก็บของคอมไพล์ของฉันฉันทำคอมมิท 5 อย่างด้านล่างในบันทึกคอมไพล์ของฉัน: commit 4f8b120cdafecc5144d7cdae472c36ec80315fdc Author: Michael Date: Fri Feb 4 15:26:38 2011 -0800 commit b688d46f55db1bc304f7f689a065331fc1715079 Author: Michael Date: Mon Jan 31 10:37:42 2011 -0800 commit b364f9dcec3b0d52666c4f03eb5f6efb7e1e7bda Author: Michael Date: Wed Jan 26 13:33:17 2011 -0800 commit 4771e26619b9acba3f059b491c6c6d70115e696c Author: Michael Date: Wed Jan 26 11:16:51 2011 -0800 commit 6e559cb951b9bfa14243b925c1972a1bd2586d59 Author: …
191 git 

27
Git bash ข้อผิดพลาด: ไม่สามารถแยกกระบวนการย่อย: ไม่มีเทอร์มินัลที่ใช้ได้ (-1)
ฉันมีเทอร์มินัลทุบตี git มากถึง 8 ตัวในเวลาเดียวกันก่อนหน้านี้ ปัจจุบันฉันมีเพียง 2 ขึ้น ฉันไม่เคยเห็นข้อผิดพลาดนี้มาก่อนและฉันไม่เข้าใจว่าอะไรเป็นสาเหตุ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม! รูปภาพที่แนบมา:
191 git  terminal  git-bash 

15
Git ร้ายแรง: ไม่รองรับโปรโตคอล 'https'
ฉันกำลังอ่านคู่มือการตีของ Github: https://guides.github.com/activities/forking/ และฉันพยายามโคลนที่เก็บลงในคอมพิวเตอร์ของฉัน อย่างไรก็ตามการรันคำสั่ง: $ git clone https://github.com/./Spoon-Knife.git Cloning into 'Spoon-Knife'... fatal: protocol 'https' is not supported ลองกับ SSH: $ git clone git@github.com:./Spoon-Knife.git Cloning into 'Spoon-Knife'... Warning: Permanently added the RSA host key for IP address '.' to the list of known hosts. git@github.com: Permission denied (publickey). fatal: Could …
191 git 

13
ฉันจะหลีกเลี่ยงการพิมพ์“ git” ที่จุดเริ่มต้นของทุกคำสั่ง Git ได้อย่างไร
ฉันสงสัยว่ามีวิธีหลีกเลี่ยงการพิมพ์คำgitที่จุดเริ่มต้นของทุกคำสั่ง Git หรือไม่ มันจะดีถ้ามีวิธีที่จะใช้เป็นgitคำสั่งเพียงครั้งเดียวในการเริ่มต้นหลังจากที่เปิดพร้อมรับคำสั่งจะได้รับในโหมด "Git" ตัวอย่างเช่น: git> หลังจากนั้นทุกคำสั่งที่เราพิมพ์จะถูกตีความเป็นค่าเริ่มต้นเป็นคำสั่ง Git ในทำนองเดียวกันกับวิธีที่เราใช้เปลือก MySQL เพื่อเขียนคำสั่งฐานข้อมูล: mysql> การทำเช่นนี้จะช่วยให้ฉันไม่ต้องพิมพ์gitหลายร้อยครั้งต่อวัน หมายเหตุ:ฉันกำลังใช้git-bashบน Windows

3
การลบสาขาในคอมไพล์ลบออกจากประวัติหรือไม่?
มาจาก svn เพิ่งเริ่มทำความคุ้นเคยกับคอมไพล์ เมื่อสาขาถูกลบในคอมไพล์มันจะถูกลบออกจากประวัติ? ใน svn คุณสามารถกู้คืนสาขาได้อย่างง่ายดายโดยการคืนค่าการดำเนินการลบ (ย้อนกลับผสาน) เช่นเดียวกับการลบทั้งหมดใน svn สาขาจะไม่ถูกลบจริงๆมันเพิ่งถูกลบออกจากทรีปัจจุบัน หากสาขาถูกลบออกจากประวัติศาสตร์ในคอมไพล์แล้วจะเกิดอะไรขึ้นกับการเปลี่ยนแปลงที่รวมเข้าด้วยกันจากสาขานั้น? พวกเขายังคงอยู่หรือไม่

2
คอมไพล์ผสานหลังจากเชอร์รี่เลือกทำงานอย่างไร
ลองจินตนาการว่าเรามีmasterสาขา จากนั้นเราสร้าง newbranch git checkout -b newbranch และสร้างใหม่สองคอมมิตถึงnewbranch: commit1และcommit2 จากนั้นเราเปลี่ยนเป็นต้นแบบและทำ cherry-pick git checkout master git cherry-pick hash_of_commit1 เมื่อมองgitkดูเราจะเห็นว่าcommit1และเวอร์ชั่นที่เลือกโดยเชอร์รี่นั้นมีแฮชที่แตกต่างกันดังนั้นในทางเทคนิคแล้วพวกมันต่างกันสองคอมมิชชัน ในที่สุดเราก็รวมnewbranchเป็นmaster: git merge newbranch และดูว่าทั้งสองการกระทำที่มีแฮชต่างกันถูกรวมเข้าด้วยกันโดยไม่มีปัญหาถึงแม้ว่าพวกเขาบอกเป็นนัยว่าควรใช้การเปลี่ยนแปลงเดียวกันสองครั้งดังนั้นหนึ่งในนั้นจึงควรล้มเหลว Git ทำการวิเคราะห์เนื้อหาของคอมมิชชันอย่างชาญฉลาดในขณะที่ผสานและตัดสินใจว่าไม่ควรใช้การเปลี่ยนแปลงสองครั้งหรือคอมมิชชันเหล่านี้มีการทำเครื่องหมายภายในเป็นการเชื่อมโยงเข้าด้วยกัน?

5
แท็ก git ถูกผลักเช่นกันหรือไม่?
ตั้งแต่ฉันสร้างที่เก็บของฉันปรากฏว่าแท็กที่ฉันสร้างไม่ได้ถูกผลักไปยังที่เก็บ เมื่อฉันทำgit tagในไดเรกทอรีท้องถิ่นแท็กทั้งหมดที่มีอยู่ แต่เมื่อฉันเข้าสู่ระบบที่เก็บระยะไกลและทำgit tagเพียงไม่กี่คนแรกที่ปรากฏขึ้น มีปัญหาอะไรบ้าง
190 git  git-tag 

5
อะไรคือความแตกต่างระหว่าง double-dot“ .. ” และ triple-dot“ …” ใน Git diff commit
อะไรคือความแตกต่างระหว่างคำสั่งต่อไปนี้: git diff foo master # a git diff foo..master # b git diff foo...master # c คู่มือต่างต่างพูดถึงมัน: เปรียบเทียบสาขา $ git diff topic master <1> $ git diff topic..master <2> $ git diff topic...master <3> การเปลี่ยนแปลงระหว่างเคล็ดลับของหัวข้อและสาขาหลัก เช่นเดียวกับข้างต้น การเปลี่ยนแปลงที่เกิดขึ้นในสาขาหลักตั้งแต่เมื่อเริ่มหัวข้อสาขา แต่ไม่ชัดเจนสำหรับฉันเลย
190 git  diff  git-diff 

4
Git: Cherry-Pick เพื่อคัดลอกการทำงานโดยไม่ต้องกระทำ
ฉันมีสาขาหลายแห่งที่ฉันยังคงมุ่งมั่นที่ฉันต้องการใช้กับสำเนาการทำงานของฉันทุก ๆ คราวแล้ว ตอนแรกฉันพยายามเก็บเชอร์รี่ แต่ฉันไม่ต้องการมีความมุ่งมั่นในสาขาเป้าหมายในภายหลัง ดังนั้นฉันจึงได้cherry-pick+reset HEAD~1 --soft มีบางสิ่งที่ง่ายกว่าเช่นการหยิบเชอร์รี่เพื่อคัดลอกเท่านั้นหรือไม่
190 git 

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