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

Git เป็นระบบควบคุมเวอร์ชันโอเพ่นซอร์สที่ได้รับการออกแบบและเขียนโดย Linus Torvalds โดยทั่วไปจะใช้เพื่อติดตามซอร์สโค้ดสำหรับโครงการซอฟต์แวร์ ในฐานะที่เป็น DVCS Git ให้ความช่วยเหลือที่มีประสิทธิภาพด้วยการรวมสาขาการผสานและการพัฒนาแบบกระจาย

1
วิธีการดึง repo คอมไพล์จาก GitHub กับการกระทำที่ไม่ได้เชื่อมโยงทั้งหมด
ฉันสงสัยว่าจะดึง repo ด้วยความมุ่งมั่นทั้งหมดที่ยังไม่ได้ gc'd ถ้าเป็นไปได้ .. มันเป็นสิ่งที่ชอบ: $ git clone x $ cd x $ git fetch origin -f ? หรืออย่างอื่น?
13 git  github 

2
ฉันจะกู้คืนจากการกด git โดยไม่ตั้งใจได้อย่างไร
ฉันวิ่งไปgit push -fโดยไม่ตั้งใจดังนั้นจึงเขียนทับสาขาที่อยู่ห่างไกล เดิม: (remote origin:) branch master -> commit aaaaaaa branch foo -> commit bbbbbbb (local) branch master -> commit ccccccc branch foo -> commit ddddddd หลังgit push -f: (remote origin:) branch master -> commit ccccccc branch foo -> commit ddddddd ในพื้นที่เก็บข้อมูลในท้องถิ่นของฉันฉันทำงานในmasterสาขาดังนั้นฉันสามารถเรียกคืนสาขาmasterที่จะกระทำaaaaaaaเพราะผมจะได้รับการกระทำจากaaaaaaa git reflogแต่ผมไม่สามารถรับกระทำเพราะผมไม่ได้ดึงก่อนbbbbbbbgit push -f ฉันลองgit reflogในที่เก็บระยะไกลแล้ว แต่ไม่มีประโยชน์ในการอ้างอิงในที่เก็บข้อมูลเปลือย …

1
ลบไฟล์ออกจากการควบคุมเวอร์ชัน git โดยไม่ต้องลบมันออกจากระบบไฟล์
ฉันจะลบไฟล์ออกจากแผนผัง git โดยไม่ลบมันได้อย่างไร เป็นเรื่องง่ายที่git addไฟล์ที่ไม่ได้ติดตามจะรวมไว้ในการคอมมิชชันต่อไป แต่ฉันไม่พบวิธีการลบไฟล์เพื่อให้มัน "ไม่ได้ติดตาม" อีกครั้งโดยคอมมิชชันอื่น
13 git 

3
วิธีการดึงหลายสาขาพร้อมกันด้วยคอมไพล์?
ใน repo ฉันมีหลายสาขาในหมู่พวกเขา "ต้นแบบ" และ "พัฒนา" ซึ่งถูกตั้งค่าให้ติดตามสาขาระยะไกล "ต้นกำเนิด / ต้นแบบ" และ "ต้นกำเนิด / พัฒนา" เป็นไปได้หรือไม่ที่จะระบุว่าฉันต้องการให้ทั้งต้นแบบและพัฒนาถูกรวมเข้าด้วยกัน (ส่งต่ออย่างรวดเร็ว) ในครั้งเดียวหรือไม่ เมื่อฉันทำgit pullตอนนี้ฉันได้รับสิ่งนี้: remote: Counting objects: 92, done. remote: Compressing objects: 100% (56/56), done. remote: Total 70 (delta 29), reused 28 (delta 8) Unpacking objects: 100% (70/70), done. From scm.my-site.com:my-repo 5386563..902fb45 develop -> origin/develop …
13 git 

1
ฉันจะป้องกันการรีบูตจากการเรียกใช้ hooks การยืนยันบนคอมมิทได้อย่างไร?
ฉันมีความมุ่งมั่นที่ล้มเหลวในการทดสอบที่มุ่งมั่นกับพวกเขา ฉันจำเป็นต้องมีการโต้ตอบลดลงระหว่างการกระทำเหล่านี้; แต่ hooks ล้มเหลวและทำให้แต่ละคนมุ่งมั่นที่จะทำให้ฉันบังคับให้git commit -nแต่ละขั้นตอนด้วยตนเอง มีวิธีการทำสิ่งนี้โดยอัตโนมัติหรือไม่? git rebase --interactive --no-verifyไม่ทำสิ่งที่ฉันคาดหวัง
13 git  interactive 

1
Git: ฉันจะค้นหาการกระทำที่ลบบรรทัดได้อย่างไร
ฉันรู้ว่าฉันเพิ่มบรรทัดในการส่งเฉพาะและสามารถดูได้ในบัญชี GitHub ส่วนตัว ในสาขาปัจจุบันของฉันมันไม่มีอยู่ในนั้นอีกแล้ว ฉันจะค้นหาว่าคอมมิชชันใดลบมันได้?
13 git 

1
ข้อผิดพลาดจากการติดตั้งเช่น
เพิ่งติดตั้ง Java และ Eclipse แบบ 32 บิตใหม่ ตอนนี้ฉันกำลังพยายามเพิ่ม egit เป็นครั้งแรกทำตามคำแนะนำที่นี่ (ใช้ที่เก็บหลัก) ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามติดตั้ง ฉันจะเอาชนะสิ่งนี้ได้อย่างไร ไม่สามารถทำการติดตั้งให้เสร็จสมบูรณ์ได้เนื่องจากไม่พบรายการที่ต้องการอย่างน้อยหนึ่งรายการ ซอฟต์แวร์ที่กำลังติดตั้ง: EGit Mylyn 2.3.1.201302201838-r (org.eclipse.egit.mylyn.feature.group 2.3.1.201302201838-r) ข้อกำหนดที่ขาดหายไป: EGit Mylyn 2.3.1.201302201838-r (org.eclipse.egit.mylyn.feature กลุ่ม 2.3.1.201302201838-r) ต้องการ 'org.eclipse.mylyn.team_feature.feature.group 3.5.0' แต่ไม่พบ
12 java  git  eclipse  github 

3
อัปเดตคอมไพล์ใน mac
ฉันจำไม่ได้ว่าฉันติดตั้งคอมไพล์ได้ซักพักแล้ว แต่ตอนนี้มันใช้งานได้/usr/bin/gitและต้องได้รับการอัปเดต ฉันไม่สนใจวิธี (รวบรวมล่วงหน้าหรือสร้างของตัวเอง) แต่สิ่งที่ฉันไม่ต้องการคือรุ่นอื่นที่มีอยู่ที่อื่น ฉันจำ curl (ไอเอ็นจี) ลงมาและรวบรวมมัน แต่ไม่ใช่ในเชิงบวก อย่างไรก็ตามวิธีที่ง่ายที่สุดในการรักษา Git ให้ทันสมัยอยู่เสมอใน Mac OS X คืออะไร คำถามด้าน: ฉันไม่คุ้นเคยกับคอมไพล์ เมื่อติดตั้งแล้วจะมีอยู่ภายในไดเรกทอรีหรือไม่ ดังนั้นในกรณีของฉันทุกอย่างเกี่ยวกับคอมไพล์ในเครื่องของฉัน (ยกเว้นที่เก็บรหัสจริงแน่นอน) อยู่ใน/usr/bin/git/? ถ้าเป็นเช่นนั้นฉันจะย้าย git ไปรอบ ๆ ด้วยวิธีง่าย ๆ ได้mv -R /usr/bin/git /opt/gitไหม จากนั้นอัปเดตของฉัน$PATHและทุกอย่างจะทำงานเหมือนเดิมไหม ถ้าเป็นเช่นนั้นฉันควรฉันสามารถติดตั้งอีกครั้งโดยวิธีการใด ๆ และไดเรกทอรีใด ๆ ... และจากนั้นย้ายใหม่เข้า / usr / bin แทนที่รุ่นเก่า?!? หรือว่าเป็นสิ่งที่ไม่ดี?

1
วิธีการให้โฟลเดอร์. git ถูกละเว้นโดยโครงการ Eclipse
เมื่อใดก็ตามที่ฉันใช้ eclipse ในโฟลเดอร์ที่มีโฟลเดอร์. git โฟลเดอร์. git จะรวมอยู่ในการค้นหาทั่วโครงการและจะแสดงในมุมมองเนวิเกเตอร์ มีวิธีใดบ้าง: ตรวจสอบให้แน่ใจว่าโฟลเดอร์. git ไม่ปรากฏในมุมมองเนวิเกเตอร์ ตรวจสอบให้แน่ใจว่าโฟลเดอร์. git ถูกละเว้นในการค้นหาทั่วทั้งโครงการ
12 git  eclipse 

4
ใช้ git เป็นแหล่งเก็บข้อมูลส่วนกลาง
ฉันได้ตั้งค่าคอมไพล์สำหรับการใช้งานของตัวเอง - ดังนั้นฉันจึงสามารถเข้าถึงโครงการจาก 'ทุกที่' และรักษาความปลอดภัยของเวอร์ชันหากฉันทำงานบนส่วน X ตรงนี้และส่วน Y ตรงนี้และสามารถรวมหากจำเป็น อย่างไรก็ตามมีเพียงหนึ่งในเครื่องพัฒนาของฉันที่มี IP แบบคงที่ สมองของฉันติดอยู่ในโหมด CVS ดังนั้นฉันจึงพยายามตั้งค่าคอมไพล์ให้เครื่องนั้นเป็นเซิร์ฟเวอร์ 'ศูนย์กลาง' ซึ่งคนอื่น ๆ ทั้งหมดดึงออกมา งานประเภทนี้ ฉันมีเครืองจักรจำนวนมากที่ทำ git-pull จาก 'master' M. พวกเขาใช้ git ในการส่งข้อมูลกลับ ปัญหาเกิดขึ้นถ้าฉันพัฒนาตัวต้นแบบ ครั้งแรกฉันไม่สามารถหาวิธีซื้อ repo ส่วนกลางเพื่อให้รุ่นล่าสุดโดยไม่ต้องทำ git reset --hard HEAD ซึ่งดูเหมือนจะมากไปหน่อย และถ้าฉันทำการพัฒนาบนเครื่องกลางก่อนที่จะรีเซ็ตฉันไม่แน่ใจว่าจะผสานมันอย่างไรกับการเปลี่ยนแปลงที่ถูกผลักดันขึ้นไปแล้ว สิ่งที่เกี่ยวกับแบบจำลองจิตของฉันเป็นวิธีออก ช่วยด้วย?
12 git 

4
คัดลอกคีย์ ssh ไปยังเครื่องอื่นเพื่อให้ฉันสามารถใช้ GitHub ได้หรือไม่
ฉันมีเซิร์ฟเวอร์ระยะไกล ฉันสามารถ ssh ไปยังเซิร์ฟเวอร์ระยะไกลได้สำเร็จ - กุญแจของฉันอยู่ในauthorized_keysเซิร์ฟเวอร์ระยะไกล ตอนนี้ฉันต้องการดึงจาก GitHub ไปยังเซิร์ฟเวอร์ระยะไกลโดยตรง แต่ฉันจะได้รับpermission denied (publickey)เมื่อฉันลองssh -T git@github.comเซิร์ฟเวอร์ระยะไกล ฉันควรจะคัดลอกid_rsa.pubโดยตรงจากเครื่องท้องถิ่นของฉันไปยังเซิร์ฟเวอร์ระยะไกลหรือว่าเป็นอันตรายหรือไม่? หากนี่คือคำตอบวิธีที่ดีที่สุดที่จะทำคืออะไร? หรือฉันควรสร้างพับลิกคีย์ใหม่บนรีโมตเซิร์ฟเวอร์และเพิ่มเข้าไปใน github acocount ของฉัน? UPDATE: นี่คือผลลัพธ์จาก verbose ssh: ~$ ssh -Tv git@github.com OpenSSH_6.0p1 Debian-4+deb7u2, OpenSSL 1.0.1e 11 Feb 2013 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug1: Connecting …
12 ssh  git 

3
วิธีเรียกใช้งานคำสั่งในฐานะรูทใน git post-receive hook
ฉันเพิ่งตั้ง repo git ระยะไกลบนเซิร์ฟเวอร์สำหรับเว็บแอปที่ทำงานเป็นบริการพุ่งพรวด ฉันต้องการใช้ hook post-receive เพื่อเรียกการกระทำที่จำเป็นในการอัปเดตรหัสแอปพลิเคชันและหยุดจากนั้นเริ่มบริการพุ่งพรวดอีกครั้ง นี่คือไฟล์ repo.git / hooks / post-receive ของฉัน: #!/bin/bash export GIT_WORK_TREE=/var/www/current/myapp/ echo "Checking out new files and restarting app" echo $USER git checkout -f sudo /sbin/stop myapp-service sudo /sbin/start myapp-service ตามข้อมูลที่ฉันอ่านที่นี่: askUbuntu.comวิธีรับคำสั่งพุ่งพรวดเพื่อดำเนินการในฐานะ root คือการแก้ไขไฟล์ visudo ของฉัน นี่คือตัวอย่างที่เกี่ยวข้อง: %sudo ALL=(ALL:ALL) ALL admin ALL=(ALL:ALL) NOPASSWD: …
12 linux  bash  git  sudo  upstart 

1
Git clone ใช้งานได้เฉพาะกับ ssh: // git @ .. และไม่ใช่กับ git @
ความคิดใดที่ว่าทำไม repo ของ GIT จะทำงานเฉพาะเมื่อใช้งานssh://git@server.com/repo.gitและไม่ใช้เมื่อgit@server.com/repo.gitใด มันเป็นการเซ็ตอัพเซิร์ฟเวอร์ของคนอื่นดังนั้นจึงไม่รู้เลยว่ามันเป็นการเซ็ตอัพ แต่ใน BitBucket หรือ GitHub ฉันสามารถใช้งานได้git@server.com/repo.gitและมันจะทำงานและโคลน repo โดยใช้โปรโตคอล SSH ความคิดใด ๆ ว่าทำไมสำหรับเซิร์ฟเวอร์นี้ฉันใช้งานได้เฉพาะเมื่อใช้ssh://git@server.com/repo.git? ดังนั้นฉันต้องเพิ่มssh://ด้านหน้า
12 ssh  git 

3
Git Syntax: วิธีเก็บถาวรที่เก็บ?
ดังนั้นฉันมีที่เก็บคอมไพล์บนคอมพิวเตอร์ที่ฉันต้องการเก็บถาวร (zip ใช้ได้) และอัปโหลดไปยังเซิร์ฟเวอร์ของฉัน เมื่ออัปโหลดไฟล์ไปยังเซิร์ฟเวอร์แล้วฉันจะแตกไฟล์เก็บถาวร ฉันไม่ต้องการข้อมูล git ใด ๆ ดังนั้นฉันคิดว่าฉันต้องใช้git archiveแต่ฉันไม่แน่ใจว่าจะใช้มันอย่างไร ... และแบบฝึกหัดไม่ได้ช่วยอะไร นี่คือสิ่งที่ฉันได้รับ: cd projectname git archive master ถ้าอย่างนั้นฉันก็ไม่รู้จะทำอะไรต่อ ฉันต้องการสร้างที่เก็บถาวรในไดเรกทอรีนี้: ./../_toDeploy/ ฉันต้องทำอย่างไร?
12 git 

3
ตัวเลือก“ ใช้ Git และเครื่องมือเสริม Unix จากพรอมต์คำสั่งของ Windows” เป็นอันตรายหรือไม่?
เมื่อติดตั้ง Git จะมีตัวเลือกให้เพิ่มเครื่องมือ msys * nix ทั้งหมดลงใน PATH ของคุณอย่างไรก็ตามจะเตือน: คำเตือน: สิ่งนี้จะแทนที่เครื่องมือ Windows เช่น "find" และ "sort" ใช้ตัวเลือกนี้เฉพาะเมื่อคุณเข้าใจความหมาย คำถามของฉันคือ: เครื่องมือใดที่ขัดแย้งกับหรือไม่ มันสำคัญไหม พวกเขามักใช้ระบบ? (ฉันไม่เคยใช้มันเป็นการส่วนตัว) ฉันสามารถเปลี่ยนลำดับของไดเรกทอรีใน PATH เพื่อป้องกันความขัดแย้งได้หรือไม่? นี่คือตัวเลือกที่ 2 หรือไม่ ("ใช้ Git จากพรอมต์คำสั่งของ Windows - ตัวเลือกนี้ถือว่าปลอดภัยเนื่องจากจะเพิ่มตัวห่อ Git เพียงเล็กน้อยเท่านั้น")
12 git  cygwin  msysgit  msys 

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