git clone โดยไม่มีโฟลเดอร์โครงการ


86

ฉันให้สิทธิ์การเข้าถึงเซิร์ฟเวอร์และต้องการโคลน git repo ลงในโฟลเดอร์รูทของฉัน แต่เมื่อฉันทำการโคลน git มันจะทำให้ฉันมีโฟลเดอร์ที่มีชื่อโปรเจ็กต์และโฟลเดอร์โปรเจ็กต์ของฉันคือรูทของฉัน ฉันไม่สามารถเข้าถึงโฟลเดอร์หลักของฉันรูทของฉันคือ

/var/www/sites/mysite/

และเมื่อฉันทำการโคลนโครงสร้างโฟลเดอร์จะเป็นอย่างไร

/var/www/sites/mysite/mysite

2
อย่าลืมส่ง. git ใน apache / webserver ที่เลือก
mnagel

1
สิ่งนี้ตอบคำถามของคุณหรือไม่? โคลนเนื้อหาของที่เก็บ GitHub (ไม่มีโฟลเดอร์เอง)
Vishrant

คำตอบ:


199

git cloneยอมรับอาร์กิวเมนต์สุดท้ายที่เป็นไดเร็กทอรีปลายทางโดยค่าเริ่มต้นจะเป็นชื่อของโปรเจ็กต์ แต่คุณสามารถเปลี่ยนได้ ในกรณีของคุณคุณอาจต้องการเพียง.:

$ git clone origin-url .

แต่โปรดทราบว่าจากman git-clone:

การโคลนลงในไดเร็กทอรีที่มีอยู่จะได้รับอนุญาตก็ต่อเมื่อไดเร็กทอรีว่างเปล่า


4
git clone @rodrigo ./heaven
a_m_dev

แล้วการโคลนสองระดับลึก ๆ ล่ะ? ฉันมีสองโฟลเดอร์ที่ด้านบนของ pom.xml?
Bionix1441

1
@ Bionix1441: ผมไม่ทราบว่าเกี่ยวกับโครงสร้างไดเรกทอรีของคุณ git clone aaa/bbbแต่ถ้าคุณเป็นสองระดับลงโดยเพียงแค่การเขียน หากคุณต้องการเพิ่มขึ้นสองระดับคุณสามารถลองได้git clone ..แต่จะไม่ได้ผลเพราะคำสั่งผู้ปกครองของคุณไม่เคยว่างเปล่า
rodrigo

โครงสร้างมีดังต่อไปนี้folder1\folder2\pom.xmlฉันต้องการpom.xmlและโฟลเดอร์ในระดับเดียวกับpom.xml
Bionix1441

36

คุณยังสามารถตั้งค่า repo ใหม่จากนั้นติดตามระยะไกลและสาขา:

git init .
git remote add origin git@github.com:user/repo.git
git fetch origin
git checkout master

สิ่งนี้จะยังใช้ไม่ได้หาก repo มีโฟลเดอร์หลัก
Hittz

ต้องตั้งค่าสาขาต้นน้ำให้ตรงกันด้วย: git branch --set-upstream-to=origin/master master จากนั้นต้องพุชการเปลี่ยนแปลงในเครื่องไปยังสาขาระยะไกล: git push --force สิ่งนี้แทนที่สาขาระยะไกลเก่าด้วยสำเนาที่อัปเดตในเครื่องของฉัน
Daniel ZA


5

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

$ mv /var/www/sites/mysite/mysite/* /var/www/sites/mysite`
$ mv /var/www/sites/mysite/mysite/.* /var/www/sits/mysite`
$ rmdir /var/www/sites/mysite/mysite

4

คุณสามารถโคลนโครงการของคุณลงในโฟลเดอร์ย่อยและย้ายไฟล์ทั้งหมดรวมทั้ง.gitโฟลเดอร์ไปยังโฟลเดอร์หลัก (รูทของคุณ)


3
ทำไมมันไม่สามารถทำได้ง่ายกว่านี้เช่น git clone git@github.com: อะไรก็ได้ \
dzona

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

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