การเรียกใช้ git init สองครั้งเริ่มต้นพื้นที่เก็บข้อมูลหรือเตรียมใช้งาน repo ที่มีอยู่ใหม่หรือไม่


166

เกิดอะไรขึ้นกับที่เก็บ git ที่มีอยู่เมื่อคุณออกgit initอีกครั้ง

git initฉันสร้างพื้นที่เก็บข้อมูลที่มี สร้างไฟล์เพิ่มกระทำ ตรวจสอบสถานะ (ไม่มีอะไรให้ทำ) จากนั้นสร้างไฟล์ใหม่ตรวจสอบสถานะและฉันสามารถดูว่าไม่ได้ติดตามอย่างที่คาดไว้

จากนั้นพูดโดยไม่ตั้งใจฉันทำงานgit initอีกครั้งและฉันได้รับข้อความที่เก็บ Git ที่มีอยู่ใหม่

พยายามgit statusแต่มันแสดงให้เห็นเหมือนกัน แล้วจะเกิดอะไรขึ้น?

การเริ่มต้นที่เก็บ git ที่มีอยู่ใหม่ด้วยวิธีนี้จะเป็นอันตรายหรือเป็นประโยชน์? ทำไมเราถึงสามารถgit initอยู่ในพื้นที่เก็บข้อมูลที่มีอยู่?


FWIW ใช้ Xcode ฉันสร้างขึ้นครั้งแรกในท้องถิ่นพื้นที่เก็บข้อมูลสำหรับแรกเวลาแล้วเมื่อผมไป Github.com เพื่อสร้างพื้นที่เก็บข้อมูลระยะไกลใหม่ สิ่งที่ฉันทำแล้วเพื่อเชื่อมโยงพื้นที่เก็บข้อมูลในท้องถิ่นของฉันกับระยะไกล ... ฉันทำตามขั้นตอนของมัน (ที่มีให้ใน Github.com) ขั้นตอนแรกคือgit initสิ่งที่ฉันทำ สันนิษฐานว่ามันเป็นครั้งที่ 2 หลังจาก Xcode โดยอัตโนมัติได้สร้างมันขึ้นมา
น้ำผึ้ง

คำตอบ:


212

จาก git docs :

การเรียกใช้ git init ในที่เก็บที่มีอยู่นั้นปลอดภัย มันจะไม่เขียนทับสิ่งที่มีอยู่แล้ว เหตุผลหลักสำหรับการเริ่มต้น git rerunning คือการรับแม่แบบที่เพิ่มเข้ามาใหม่


110

นี่คือคำอธิบายในgit initเอกสารประกอบ:

การเรียกใช้git initในที่เก็บที่มีอยู่นั้นปลอดภัย มันจะไม่เขียนทับสิ่งที่มีอยู่แล้ว เหตุผลหลักสำหรับการเริ่มต้น git rerunning คือการรับแม่แบบที่เพิ่มเข้ามาใหม่


47

ตั้งแต่ v1.7.5 ( b57fb80a7 ) git initใน repo ที่มีอยู่ได้อนุญาตให้ย้าย.gitไดเรกทอรี:

เหตุผลหลักสำหรับการทำซ้ำ 'git init' คือการรับเทมเพลตที่เพิ่มใหม่ (หรือย้ายที่เก็บไปยังที่อื่นถ้ากำหนด - แยก - git - dir)

'การหยิบเทมเพลตที่เพิ่มเข้ามาใหม่' หมายความว่าเทมเพลตที่ยังไม่ได้คัดลอกจากไดเรกทอรีเทมเพลตนั้นจะถูกคัดลอกไปยังไดเรกทอรี git ที่มีอยู่

'การย้ายที่เก็บไปยังที่อื่น' หมายความว่าหาก--separate-git-dirชี้ไปที่อื่น.gitไดเรกทอรีที่มีอยู่จะถูกย้ายไปที่นั่นและแทนที่ด้วยลิงก์


-1

มันหมายความว่าคุณได้เริ่มต้นคอมไพล์แล้ว เนื่องจากคุณอัปโหลดไฟล์บน GitHub จากพา ธ นี้แล้ว คุณตรวจสอบเส้นทางแล้วสร้างโฟลเดอร์ด้วยชื่อ. git นั่นคือเหตุผลที่คุณไม่ต้องเรียกค่าคอมไพล์อีกครั้ง คุณสามารถไปที่ขั้นตอนต่อไปได้โดยตรง

คอมไพล์เพิ่ม

โฟลเดอร์ Git

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