เบราว์เซอร์ Bare Bones
git instaweb --httpd=webrick
จากหนังสือ scit git
รวมกับสิ่งที่ต้องการแนวทางที่อธิบายไว้ที่นี่เพื่อการพัฒนาแบบกระจาย (เครดิตให้กับดาต้าโกรคสำหรับแนวคิดที่อธิบายไว้อย่างดี)
เรียกใช้เซิร์ฟเวอร์ git แบบครั้งเดียวจากที่เก็บในตัวเครื่อง
ฉันทวีตไปแล้วแต่ฉันคิดว่ามันสามารถใช้การขยายตัวได้บ้าง:
เปิดใช้งานเวิร์กโฟลว์ Git แบบกระจาย: git config alias.serve "daemon --verbose --export-all --base-path = .git --reuseaddr - เส้นทาง จำกัด . git /"
สมมติว่าคุณใช้เวิร์กโฟลว์ git ที่เกี่ยวข้องกับการทำงานกับพื้นที่เก็บข้อมูลหลัก "เป็นทางการ" ที่คุณดึงและดันการเปลี่ยนแปลงจากและเข้า ฉันแน่ใจว่าหลาย บริษัท ทำเช่นนี้เช่นเดียวกับผู้ใช้บริการโฮสติ้ง Git จำนวนมากเช่น Github
พูดว่าเซิร์ฟเวอร์หรือ Github ลงไปเล็กน้อย
ไม่ต้องกังวลเพราะหนึ่งในเหตุผลที่คุณใช้คอมไพล์คือให้คุณมีสำเนาประวัติโครงการทั้งหมดในโคลนโลคัลของคุณ
คุณสามารถเข้ารหัสและคอมมิชชันได้อย่างถูกต้องในขณะที่รอให้ทีมปฏิบัติงานนำเซิร์ฟเวอร์กลับมาใช้งานอีกครั้ง หมายเหตุถึงตนเอง: ซื้อโดนัทสำหรับทีมปฏิบัติการ
แต่ถ้าหากในช่วงเวลานี้คุณต้องการร่วมมือกับคนอื่นซึ่งอาจไม่ใช่ผู้เชี่ยวชาญคอมไพล์ในที่เก็บเดียวกัน
หรือแทนที่จะหยุดทำงานจะเกิดอะไรขึ้นถ้าคุณและผู้ทำงานร่วมกันอยู่ในสนามและด้วยเหตุผลบางอย่างที่ทำให้ VPN ของคุณไม่สามารถให้คุณเชื่อมต่อกับ repo อย่างเป็นทางการได้
หรือจะเป็นอย่างไรถ้าคุณและผู้ทำงานร่วมกันพยายามเปลี่ยนแปลงการทดลองและแม้ว่าคุณจะสามารถเข้าถึงได้คุณไม่ต้องการที่จะผลักดันระเบียบที่ยังไม่เสร็จของคุณเข้าไปในพื้นที่เก็บข้อมูลส่วนกลางอย่างเป็นทางการ? (ไม่ใช่แม้กระทั่งฟีเจอร์ที่เป็นสาขา) บางทีคุณอาจกำลังล้างข้อมูลการรีบูสต์หรือการผสานอย่างหายนะและมีสาขาอยู่ทั่วทุกที่
ดีคอมไพล์ที่คุณอาจทราบเป็น"กระจาย" ระบบการควบคุมเวอร์ชัน
แม้ว่าคุณอาจใช้พื้นที่เก็บข้อมูล git "เป็นทางการ" กลางในเวิร์กโฟลว์ของคุณคุณยังสามารถใช้ git ในลักษณะเพียร์ทูเพียร์ที่ซึ่งคุณและผู้ทำงานร่วมกันสร้างและแบ่งปันคอมมิชชันร่วมกันและศูนย์กลาง เซิร์ฟเวอร์ไม่เคยรู้
ดังนั้นคุณจะได้รับสาขาของคุณและมุ่งมั่นไปที่พวกเขาหรือในทางกลับกันได้อย่างไร
- คุณสามารถใช้สิ่งอำนวยความสะดวกของคอมไพล์สำหรับแพทช์ส่งอีเมล แต่นั่นเป็นบิตที่ไม่ซับซ้อนและต้องการความรู้บางอย่างในตอนท้ายของวิธีการใช้แพทช์อีเมล
- คุณสามารถสร้างบัญชีในเครื่องของคุณเองเพื่อให้ผู้ทำงานร่วมกันทำ ssh แต่บางทีคุณอาจไม่มีการเข้าถึงรูทในเครื่องหรือคุณอาจไม่ไว้ใจพวกเขาด้วยการเข้าถึง SSH ในกล่องของคุณ
- คุณสามารถโคลน repo ของคุณบน thumbdrive และส่งมันไปมา แต่นั่นค่อนข้างน่าเบื่อโดยเฉพาะอย่างยิ่งถ้าคุณอยู่ในเครือข่ายท้องถิ่นเดียวกันและต้องใช้ไดรฟ์หัวแม่มือ
คุณอาจนึกถึงวิธีอื่นด้วย แต่มีวิธีที่ง่ายสุด ๆ : ถ้าคุณเห็นกันและกันบนเครือข่ายคุณสามารถเปิดเซิร์ฟเวอร์ git ที่ใช้ครั้งเดียวซึ่งพวกเขาสามารถใช้เป็นรีโมตเพื่อโคลนดึงและดึงการเปลี่ยนแปลงและฆ่าเมื่อคุณ ทำกับมัน
เครื่องมือที่เปิดใช้งานสิ่งนี้คือgit daemonซึ่งมีตัวเลือกและฟังก์ชั่นมากมาย แต่เพื่อจุดประสงค์ในการเปิดใช้งานง่ายเพียงครั้งเดียว "เพียงให้บริการ repo ที่ฉันเข้ามา" วิธีใช้งานก็คือสร้างนามแฝง git serveผมชอบที่จะเรียกมันว่า วิ่ง:
git config --global alias.serve "daemon --verbose --export-all --base-path=.git --reuseaddr --strict-paths .git/"
การใช้นามแฝงนั้นสำคัญมากเพราะนามแฝง git จะถูกดำเนินการในไดเรกทอรีฐานของแผนผังการทำงานของคุณ ดังนั้นเส้นทาง '.git' จะชี้ไปยังตำแหน่งที่ถูกต้องเสมอไม่ว่าคุณจะอยู่ที่ไหนในแผนผังไดเรกทอรีของพื้นที่เก็บข้อมูลของคุณ
ใช้ของใหม่git serveเช่น:
- วิ่ง
git serveวิ่ง"พร้อมที่จะดังก้อง" มันจะรายงาน Git แย่มาก
- ค้นหาที่อยู่ IP ของคุณ พูดว่า 192.168.1.123
- พูดว่า "เฮ้เจนฉันไม่พร้อม / สามารถผลักดันสิ่งเหล่านี้ได้ถึงจุดเริ่มต้น แต่คุณสามารถดึงข้อมูลความมุ่งมั่นของฉันเข้าสู่โคลนนิ่งของคุณได้ด้วยการวิ่ง
git fetch git://192.168.1.123/ "
- กด ctrl + c เมื่อคุณไม่ต้องการให้บริการ repo นั้นอีกต่อไป
คุณสามารถบอกเจนgit clone git://192.168.1.123/ local-repo-nameว่าถ้าเธอยังไม่มีโคลนของที่เก็บ หรือใช้git pull git://192.168.1.123/ branchnameเพื่อดึงข้อมูลและผสานในครั้งเดียวมีประโยชน์หากคุณทำงานร่วมกันในสาขาคุณลักษณะ
โปรดทราบว่าคุณไม่ควรทำสิ่งนี้กับเครือข่ายที่เป็นมิตรหากคุณเก็บความลับในที่เก็บของคุณเพราะไม่มีการตรวจสอบสิทธิ์ มันไม่ได้โฆษณาว่ามีอยู่จริง แต่ทุกคนที่มีเครื่องสแกนพอร์ตสามารถค้นพบได้เชื่อมต่อกับมันและลอกแบบ repo ของคุณ
แต่มันก็ไม่อันตรายสุด ๆ เพราะมันเป็นแบบอ่านอย่างเดียวโดยปริยาย อ่านgit daemon man page อย่างรอบคอบหากคุณคิดว่าคุณต้องการเปิดใช้งานการเข้าถึงเพื่อเขียน ในกรณีที่คุณต้องการรับความมุ่งมั่นของผู้ทำงานร่วมกันคุณควรปล่อยให้เป็นแบบอ่านอย่างเดียวและขอให้ผู้ทำงานร่วมใช้คำสั่งนี้เพื่อให้คุณสามารถดึงออกมาได้
มีความเกี่ยวข้องกัน: ในเรื่องของเซิร์ฟเวอร์ที่ใช้ครั้งเดียวหากคุณต้องการแชร์ไฟล์สแตติกจำนวนมากผ่าน HTTP ชั่วคราว: python -m SimpleHTTPServer