จะเปลี่ยนชื่อโฟลเดอร์ git root ได้อย่างไร?


86

ฉันเพิ่งเริ่มใช้ git ใน Vista โดยมีที่เก็บอยู่ภายใต้/path/to/project/git repo.

ตอนนี้ฉันพบว่าช่องว่างในชื่อโฟลเดอร์มีการระคายเคืองเล็กน้อยเมื่อทำงานใน git bash

ฉันสามารถเปลี่ยนชื่อโฟลเดอร์เป็นได้/path/to/project/gitrepoหรือไม่? ทุกอย่างภายใน git config สัมพันธ์กันหรือมีอะไรที่อ้างถึงโฟลเดอร์หลักอย่างชัดเจน?

ฉันได้ลองใช้สำเนา windows ของโฟลเดอร์หลักและเรียกใช้ git bash จากนั้น 'git log' จะแสดงการเปลี่ยนแปลงที่ฉันได้ทำไปก่อนหน้านี้ ดังนั้นฉันคิดว่าการเปลี่ยนชื่อโฟลเดอร์หลักนั้นใช้ได้ แต่ฉันต้องการให้แน่ใจก่อนที่จะดำเนินการต่อไป

คำตอบ:


53

หากต้องการแก้ไขคำตอบของGregเล็กน้อยใช่ทุกอย่างที่มี git repo นั้นสัมพันธ์กับไดเร็กทอรีหลัก แต่:.git

(และสิ่งนี้อาจไม่ส่งผลกระทบต่อคุณโดยตรงฉันพูดถึงเหตุผลเหล่านั้นที่นี่เพื่อความสมบูรณ์เท่านั้น):

  • เส้นทางของ repo นั้นสามารถอ้างอิงได้โดยบริการอื่น ๆ ที่ทำงานบนคอมพิวเตอร์ของคุณ (Apache, ssh, repo อื่นที่ประกาศ repo ของคุณเป็นระยะไกลโดยใช้เส้นทางไฟล์แบบเต็มชั้นgitolite ที่ประกาศ repos ของคุณในเส้นทางที่กำหนด ... )
  • การดำเนินการบางอย่างใช้เส้นทางแบบเต็มของ repo (เช่นการGIT_INDEX_FILEใช้ภายในfilter-branchคำสั่งเช่นดูเธรดนี้ ) ดังนั้นอย่าเปลี่ยนชื่อไดเร็กทอรีรากในขณะที่ดำเนินการที่ซับซ้อนบน repo ของคุณ

นอกจากนี้ "windows copy" (แทนที่จะเป็น a git clone) จะคัดลอกทุกอย่างรวมถึง hooks ซึ่งอาจรวมถึงพา ธ สัมบูรณ์ในสคริปต์หากคุณได้แก้ไขและทำการแก้ไขประเภทนั้น


2
ดังนั้นหากใครมีขั้นตอนที่เป็นประโยชน์และชัดเจนเพื่อให้แน่ใจว่าจะทำก็จะนำไปปฏิบัติได้มาก
ahnbizcad

@g ใครมีขั้นตอนอะไรนอกเหนือจากการเปลี่ยนชื่อโฟลเดอร์ repo
VonC

88

ใช่การเปลี่ยนชื่อโฟลเดอร์ที่มีที่เก็บ Git นั้นปลอดภัย เส้นทางทั้งหมดภายในที่เก็บ Git เป็นแบบสัมพัทธ์


4

โปรดตรวจสอบความคิดเห็นก่อน ...

ในความคิดของฉันสิ่งที่ดีที่สุดคือการใช้git workflowโดยเฉพาะเมื่อคุณใช้ git server (remote master repository) ซึ่งหมายความว่า:

  • ได้รับไดเรกทอรีเก่าในซิงค์กับเซิร์ฟเวอร์คอมไพล์ของคุณ ( git pull, git pushและที่สุดท้ายgit statusเพื่อดูว่าทุกอย่างดี)
  • git clone <former directory> <new directory>

(เนื่องจากฉันยังใหม่กับ GIT นี่อาจไม่ใช่คำตอบที่สมบูรณ์และถูกต้องฉันมีคำถามเดียวกับมิกและเพื่อจุดประสงค์ในการเรียนรู้ฉันพยายามทำด้วยวิธีคอมไพล์ :) ขอบคุณสำหรับเบาะแส vonC! กรุณาแก้ไขฉันถ้าจำเป็น :)


1
หากคุณgit clone <former directory> <new directory>ไม่จำเป็นต้องสร้างไฟล์<new directory>แรก git cloneจะสร้างมันสำหรับคุณ
VonC

3
ฉันไม่คิดว่านี่จะเป็นสิ่งที่คุณต้องการ ชุดนี้ที่มาของการ<new directory> <old directory>ดังนั้นgit remote -vในการจะแสดง<new directory> origin C:/old/directory
kvu787

1
ฉันเห็นด้วยกับ @ kvu787 สิ่งนี้ไม่เหมือนกับสิ่งที่ขอและอาจทำให้เกิดปัญหามากมาย
alkanen

@ kvu787 @alkanen ช่วยได้ไหมสิ่งที่ผู้ใช้แนะนำ: git remote rm origin- เพื่อลบไดเรกทอรีเก่าของคุณเป็นที่มาของตัวแทนใหม่และ - cd .. and rm -rf <former directory>เพื่อลบไดเรกทอรีเก่า
PythoNic

@PythoNic ถ้า repo เก่ามีรีโมตชื่อ "origin" ไม่ก็ไม่เป็นไรเพราะ repo ใหม่ของคุณจะไม่มีรีโมตนั้นอีกต่อไป ไม่เช่นนั้นก็ใช้ได้ แต่การเปลี่ยนชื่อโฟลเดอร์จะง่ายกว่า
kvu787

0

ใช่คุณสามารถเปลี่ยนแปลงได้ repo ของคุณยังคงส่งตรงไปยังคอมไพล์ของคุณ .. อย่าเพิ่งลบ / แก้ไขชื่อ. git fo

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