วิธีการตั้งค่าเซิร์ฟเวอร์ GIT ของตัวเอง? Repos ที่เปลือย / ไม่เปลือยคืออะไร?


10

ฉันกำลังพยายามติดตั้งเซิร์ฟเวอร์ GIT ง่าย ๆ ฉันติดตั้ง Ubuntu บนพีซีแบบเสมือน (กล่องเสมือน) ฉันติดตั้ง GIT สร้าง repo และอื่น ๆ

git init 
git add .
git commit "..."

จากนั้นใน Windows ฉันทำอะไรบางอย่างที่ด้านล่าง (บน cygwin)

git clone jiewmeng@192.168.0.3:proj1

พยายามเปลี่ยนแปลงแล้ว

คอมไพล์กระทำ -am "... "

แต่มีบางอย่างเช่น

ดูภาพ

ฉันคิดว่าฉันติดตั้ง GIT ผิดหรือเปล่า? ฉันอ่านบางสิ่งเกี่ยวกับ repos ที่เปลือย / ไม่เปลือย? ฉันควรใช้งานเปลือยตลอดเวลาหรือไม่? ฉันเหนื่อย

git checkout --bare jiewmeng@192.168.0.3:proj1 

แต่ได้proj1.gitมันแปลกไฟล์ / โฟลเดอร์เช่น (หัว ฯลฯ ) ภายใน วิธีตั้งค่า GIT ที่เหมาะสมเป็นอย่างไร

ใครบางคนสามารถอธิบาย repos ที่เปลือย / ไม่เปลือยได้ฉันหลงทางกับ GitHub นั่นไม่ใช่เรื่องแบบนั้น!

อัปเดต 28 เมษายน 2554 18:00 UTC + 8

ฉันลองทำตามhttp://www.youtube.com/watch?v=1gNFrPNF9-Yและใน Ubuntu (เซิร์ฟเวอร์) ทำเช่นนั้น

git init --bare

จากนั้นใน Windows (ไคลเอนต์ / Cygwin) ได้

git init 
// added readme.txt 
git add .
git commit -m "..."
git remote add origin master jiewmeng@192.168.0.3:proj2
git push origin master

ดูเหมือนว่าจะไม่มีข้อผิดพลาด แต่ใน Ubuntu ฉันไม่เห็นไฟล์ของฉันอยู่ที่ไหน ฉันมองไปที่branches/1 มีอยู่ในนั้น?

คำตอบ:


9

ที่เก็บ "ปกติ" เป็นไดเรกทอรีที่มีที่เก็บจริงและสำเนาที่ใช้งานได้ .gitพื้นที่เก็บข้อมูลที่เกิดขึ้นจริงตั้งอยู่ในไดเรกทอรีย่อยที่ซ่อนอยู่กับชื่อ สำเนาการทำงานคือไฟล์และไดเรกทอรีที่คุณทำงานด้วย

พื้นที่เก็บข้อมูล "เปล่า" เป็นเพียงเนื้อหาของ.gitไดเรกทอรีโดยไม่มีสำเนาที่ทำงานได้

คุณไม่สามารถทำงานได้ในพื้นที่เก็บข้อมูลเปลือย ก่อนอื่นคุณต้องทำการโคลนที่เก็บเปลือยกับที่เก็บปกติจากนั้นทำงานกับโคลน

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

ในความพยายามครั้งที่สองของคุณคุณสร้างที่เก็บ "เปลือย" จากนั้นคุณสร้างที่เก็บ "ปกติ" จากนั้นคุณผลักจากปกติไปยังพื้นที่เก็บข้อมูลเปลือย นั่นคือหนึ่งในเวิร์กโฟลว์ที่คาดหวัง นั่นคือเหตุผลที่คุณไม่มีข้อผิดพลาดหรือคำเตือน

เมื่อคุณต้องการทำงานในโครงการของคุณจากเครื่อง windows และจากเครื่อง Ubuntu คุณมีสองตัวเลือก:

  1. สร้างพื้นที่เก็บข้อมูลเปล่า (ไม่สำคัญว่าที่ไหน) จากนั้นโคลนจากพื้นที่เก็บข้อมูลนั้นหนึ่งอันบนเครื่อง windows และอีกอันบนเครื่อง Ubuntu ตอนนี้ดันจากโคลนไปยังที่เก็บเปลือยและดึงจากที่เก็บเปลือยไปยังโคลน อย่าผลักดันไปยังที่เก็บปกติ

  2. สร้างที่เก็บปกติสองแห่งโดยที่หนึ่งอยู่บนเครื่อง Windows และที่เก็บหนึ่งแห่งบนเครื่องอูบุนตู ตอนนี้เมื่อทำงานกับ Ubuntu คุณสามารถดึงจากเครื่อง windows และในทางกลับกัน อย่าผลักกัน

ด้านล่างบรรทัด: เคยผลักดันไปยังที่เก็บเปลือย ในกรณีอื่น ๆ เมื่อคุณคิดว่าคุณต้องการผลักดันจาก A ถึง B แทนให้ไปที่ B แล้วดึงจาก A

ดูเหมือนว่าคุณยังใหม่กับคอมไพล์ โปรดอ่านหนึ่งหรือทั้งสองของหนังสือที่ดีมากต่อไปนี้: Git หนังสือ , Pro Git


1
อืมดูเหมือนว่าจุดการเรียนรู้หลักคือ " แค่กดไปที่ที่เก็บเปลือยเปล่าเท่านั้นในกรณีอื่น ๆ เมื่อคุณคิดว่าคุณต้องการที่จะผลักดันจาก A ถึง B แทนให้ไปที่ B แล้วดึงจาก A " ถ้าเป็นเช่นนั้น GitHub ทำเช่นไร? ฉันผลักไปทางขวา (nv ใช้แล้วสำหรับชั่วขณะแล้ว ... )?
Jiew Meng

@JiewMeng: GitHub ใช้ที่เก็บข้อมูลเปล่า เว็บไซต์อ่านข้อมูลโดยตรงจาก Git และไม่ต้องการ workdir
user1686

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