บ่อยครั้งที่ Git และ Rails ดูเหมือนเวทมนตร์ ... เช่นในบทแรกของหนังสือ Tutorials 3 ของ Railsมันพูดถึง Git:
git remote add origin git@github.com:peter/first_app.git
git push origin master
และมันก็บอกว่า "ใช้งานได้ดี" โดยไม่ได้พูดอะไรมากและเริ่มพูดคุยเกี่ยวกับการแตกแขนง ค้นหาสุทธิแสดงว่าgit remote add
จะเพิ่ม "ชื่อย่อ" เช่นorigin
และมันอาจเป็นชื่อใด ๆ เช่นกันซึ่งเป็นเหมือนนามแฝงของ URL และorigin
เป็นเส้นทางปกติของที่ repo ระยะไกลชี้ไปที่ (ในhttp://git-scm.com/book/en/Git-Basics-Working-with-Remotesภายใต้ "การเพิ่มที่เก็บระยะไกล")
เหตุใด URL จึงไม่ใช่ git://git@github.com/peter/first_app.git
แต่อยู่ในรูปแบบอื่น - เป็นรูปแบบอะไร ทำไมมันจะต้องจบลงด้วย.git
? ฉันพยายามไม่ใช้.git
ตอนท้ายและก็ใช้งานได้เช่นกัน หากไม่.git
สามารถมีอะไรอีกบ้าง git
ในgit@github.com
น่าจะเป็นบัญชีผู้ใช้บนเซิร์ฟเวอร์คอมไพล์หรือไม่
นอกจากนี้ทำไมจึงต้องใช้ verbose มากgit push origin master
? ค่าเริ่มต้นไม่สามารถเป็นแหล่งกำเนิดและต้นแบบได้หรือไม่ ฉันพบว่าในครั้งแรกorigin master
จำเป็นต้องมี แต่หลังจากแก้ไขและคอมมิทเล็กน้อยแล้วก็git push
เป็นสิ่งที่ต้องการ (ไม่จำเป็นorigin master
) ใครบางคนที่รู้ว่าเกิดอะไรขึ้นจะให้รายละเอียดบ้างไหม?
บางครั้งมันรู้สึกเหมือนเวทมนต์มากมายโดยไม่มีคำอธิบาย ... และบางครั้งคนที่ใช้มันก็มีความมั่นใจมากและเมื่อถูกถามว่าทำไมไม่สามารถอธิบายได้และตอบกลับด้วยบางสิ่งเช่น บางครั้งการปฏิบัติมากและในทางปฏิบัติ มันไม่ได้เลวร้ายที่จะใช้งานได้จริง แต่อาจจะไม่เป็นประโยชน์ในจุดที่ไม่รู้ว่าเกิดอะไรขึ้น
git@github.com:peter/first_app.git
เป็นscp
ไวยากรณ์รูปแบบสำหรับ ssh URL ใน git อีกจุดหนึ่งคือโดยค่าเริ่มต้นการกำหนดค่าอัปสตรีมของmaster
ไม่มีผลกระทบต่อพฤติกรรมของgit push
เว้นแต่คุณได้push.default
ตั้งค่าเป็นtracking
(หรือupstream
ในรุ่นที่ใหม่กว่า) - ฉันโพสต์บล็อกเกี่ยวกับแหล่งที่มาของความสับสนนี้: longair.net/blog/2011 /