ฉันจะเปลี่ยนชื่อพื้นที่เก็บข้อมูล Git ได้อย่างไร


435

git mvเปลี่ยนชื่อไฟล์หรือไดเรกทอรีในพื้นที่เก็บข้อมูล ฉันจะเปลี่ยนชื่อพื้นที่เก็บข้อมูล Git เองได้อย่างไร


1
ฉันได้ลองใช้mvเพื่อเปลี่ยนชื่อ PROJ0.git ใน `ที่เก็บของโฮสต์ 'ของฉันมันใช้งานได้ แต่ฉันไม่รู้ว่าถูกต้องฉันหมายถึงถูกต้อง
Yantao Xie

5
คำถามของคุณไม่เป็นไร Git มีที่เก็บและสามารถมีโครงการเช่นโครงการ Eclipse หากคุณตัดสินใจที่จะวางโครงการของคุณในที่เก็บ git หากนั่นคือสิ่งที่คุณต้องการจากนั้นดูวิธีทำในคำตอบด้านล่าง
Danny Remington - OMS

3
gitตัวเองไม่มีบทบัญญัติที่จะระบุชื่อที่เก็บ ชื่อไดเรกทอรีรากเป็นแหล่งที่มาของความจริงเดียวที่เกี่ยวข้องกับชื่อพื้นที่เก็บข้อมูล .git/descriptionไฟล์แม้ว่าจะใช้โดยการใช้งานบางอย่างเช่นGitweb
Ujjwal ซิงห์

คำตอบ:


620

มีการตีความที่เป็นไปได้ต่าง ๆ ของสิ่งที่มีความหมายโดยการเปลี่ยนชื่อที่เก็บ Git: ชื่อที่แสดงไดเรกทอรีที่เก็บหรือชื่อที่เก็บระยะไกล แต่ละคนต้องการขั้นตอนที่แตกต่างกันในการเปลี่ยนชื่อ

ชื่อที่แสดง

เปลี่ยนชื่อชื่อที่แสดง (ตัวอย่างเช่นแสดงโดยgitweb):

  1. แก้ไข.git/descriptionเพื่อเก็บชื่อของที่เก็บ
  2. บันทึกไฟล์

ไดเรกทอรีที่เก็บข้อมูล

Git ไม่ได้อ้างอิงชื่อของไดเรกทอรีที่มีที่เก็บตามที่ใช้git clone master childดังนั้นเราจึงสามารถเปลี่ยนชื่อได้:

  1. เปิดพรอมต์คำสั่ง (หรือหน้าต่างตัวจัดการไฟล์)
  2. เปลี่ยนเป็นไดเร็กทอรีที่มีไดเร็กทอรีที่เก็บ (เช่นห้ามเข้าไปในไดเร็กทอรี repository เอง)
  3. เปลี่ยนชื่อไดเรกทอรี (ตัวอย่างเช่นใช้mvจากบรรทัดคำสั่งหรือF2ปุ่มลัดจาก GUI)

พื้นที่เก็บข้อมูลระยะไกล

เปลี่ยนชื่อที่เก็บรีโมตดังนี้:

  1. ไปที่รีโมตโฮสต์ (ตัวอย่างเช่นhttps://github.com/User/project )
  2. ทำตามคำแนะนำของโฮสต์เพื่อเปลี่ยนชื่อโครงการ (จะแตกต่างจากโฮสต์ไปยังโฮสต์ แต่โดยปกติการตั้งค่าเป็นจุดเริ่มต้นที่ดี)
  3. ไปที่ไดเรกทอรีที่เก็บในเครื่องของคุณ (เช่นเปิดพรอมต์คำสั่งและเปลี่ยนเป็นไดเรกทอรีของที่เก็บ)
  4. กำหนด URL ใหม่ (ตัวอย่างเช่นgit@github.com:User/project-new.git)
  5. ตั้งค่า URL ใหม่โดยใช้ Git:

    git remote set-url origin git@github.com:User/project-new.git
    

3
ในกรณีที่สองเกิดอะไรขึ้นกับใครก็ตามที่โคลนที่เก็บข้อมูลแล้ว
Frederico Schardong

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

14
โปรดทราบว่าการยืนยัน "git ไม่ได้อ้างอิงชื่อไดเรกทอรีนี้" ในกรณีที่สองนั้นไม่ถูกต้องหากคุณใช้ submodules: git ใช้พา ธ สัมบูรณ์เพื่ออ้างถึง submodules ดังนั้นการเปลี่ยนชื่อไดเรกทอรีที่เก็บของคุณจะเป็นการทำลาย submodules ดูstackoverflow.com/questions/10144149/…
Edward

ฉันใช้ GitHub สำหรับ Windows GUI และฉันไม่จำเป็นต้องเปลี่ยนไฟล์. git / description (ฉันไม่มี) ชื่อที่แสดงใน GUI เปลี่ยนไปหลังจากฉันทำขั้นตอนสุดท้ายในการรีเซ็ตแหล่งกำเนิด
Joe Ernst

4
คนพูดถึง. git / description แต่ไม่มีการพูดถึงการเปลี่ยนแปลงที่คุณใส่ไว้ในนั้นเพื่อเปลี่ยนชื่อ repo
โปรแกรมเมอร์ Unextraordinair

24

ที่เก็บ Git ไม่มีชื่อ คุณสามารถเปลี่ยนชื่อไดเรกทอรีที่มี worktree ของคุณได้ถ้าต้องการ


7
ใช่ repo คอมไพล์มีชื่อ ฉันได้รับข้อผิดพลาดนี้หลังจากเปลี่ยนชื่อ:$ git status fatal: Not a git repository: C:/xxx/.git/xxx fatal: git status --porcelain failed
Sawny

@Sawny ฉันไม่เห็นสิ่งที่เกี่ยวข้องกับอะไร
Tobu

19
คุณบอกว่า repit คอมไพล์ไม่มีชื่อ แต่นั่นไม่จริง หากคุณใช้โปรแกรมย่อยและเปลี่ยนชื่อโฟลเดอร์คุณจะได้รับข้อผิดพลาดจากคอมไพล์ ดูstackoverflow.com/questions/9878860/…
Sawny

6
โอเคเส้นทางของ submodule ภายในที่เก็บ git สำคัญ เป็นเรื่องจริง แต่ไม่เกี่ยวข้องกับคำถามนี้
Tobu

5
แน่นอนที่เก็บมีชื่อ ดูวิธีเปลี่ยนได้ที่ด้านล่าง
Danny Remington - OMS


15

ในที่เก็บใหม่ตัวอย่างเช่นหลังจาก a $ git init. ไดเร็กทอรี git จะมีไฟล์. git / description

ซึ่งมีลักษณะเช่นนี้:

Unnamed repository; edit this file 'description' to name the repository.

การแก้ไขสิ่งนี้บนพื้นที่เก็บข้อมูลในเครื่องจะไม่เปลี่ยนแปลงในที่เก็บระยะไกล


คำตอบของ Alex Brown ได้รวมของคุณ
Yantao Xie

13

หากคุณหมายถึงการเปลี่ยนชื่อพื้นที่เก็บข้อมูลของคุณไปที่พื้นที่เก็บข้อมูลของคุณและคลิก "admin" จากนั้นเปลี่ยนชื่อ

เมื่อคุณเห็นกล่องสีแดงเตือนคุณเกี่ยวกับการตกลงมาของท้องฟ้าและสิ่งอื่น ๆ ให้ไปอ่านคำถามนี้


12
อาจช่วยให้ผู้อื่นทราบว่านี่เป็นคำแนะนำเฉพาะของ Github และจะไม่นำไปใช้กับ Git โดยทั่วไป
founddrama

1
ตั้งแต่มกราคม 2013 คำแนะนำ github ควรเป็น: (ลงชื่อเข้าใช้ gitub) ไปที่ repo ของคุณจากนั้นไปที่ "ตั้งค่า" >> "ตัวเลือก" และมองหาปุ่มเปลี่ยนชื่อที่นั่น เกี่ยวกับคำเตือนสีแดงเกี่ยวกับสิ่งเลวร้ายที่เกิดขึ้น Droogans เชื่อมโยงไปยังอีกดังนั้นคำถามก็ยังแนะนำอย่างมาก
pestophagous

12

หากต้องการเปลี่ยนชื่อที่เก็บของบัญชี GitHub ของคุณ:

  1. ไปที่ที่เก็บซึ่งคุณต้องการเปลี่ยนชื่อ
  2. นำทางไปยังแท็บการตั้งค่า
  3. ในส่วนชื่อพื้นที่เก็บข้อมูลให้พิมพ์ชื่อใหม่ที่คุณต้องการใส่แล้วคลิก Rename

ไม่ใช่คำถาม GitHub นี่เป็นเรื่องของ git
robrecord

10

หากคุณใช้ GitLab หรือ GitHub คุณสามารถแก้ไขไฟล์เหล่านั้นได้ในรูปกราฟิก

ใช้ GitLab

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

เมื่อเสร็จสิ้นการกำหนดค่าไคลเอนต์ท้องถิ่นจะต้องมีการปรับปรุงโดยใช้

git remote set-url origin sshuser@gitlab-url:GROUP/new-project-name.git

9
  • ทางฝั่งเซิร์ฟเวอร์ให้เปลี่ยนชื่อที่เก็บด้วยคำสั่งmvตามปกติ:

    mv oldName.git newName.git
    
  • จากนั้นในฝั่งไคลเอ็นต์ให้เปลี่ยนค่าของ[remote "origin"]URL เป็นอันใหม่:

    url=example.com/newName.git
    

มันใช้งานได้สำหรับฉัน


8

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

1) ใน Eclipse : ปิดโครงการทั้งหมดที่อยู่ในที่เก็บ

2) ในระบบไฟล์ : ค้นหาไดเร็กทอรี / โฟลเดอร์ที่มีที่เก็บ

3) ในระบบไฟล์ : เปลี่ยนชื่อไดเรกทอรี / โฟลเดอร์ที่มีที่เก็บ

4) ในระบบไฟล์ : เปิดไดเรกทอรี / โฟลเดอร์ที่มีที่เก็บและเปลี่ยนชื่อไดเรกทอรีโครงการ / โฟลเดอร์ของโครงการใด ๆ ที่คุณตั้งใจจะเปลี่ยนชื่อเพื่อที่จะตรงกับชื่อใหม่ของโครงการ (ไม่จำเป็นต้องใช้ แต่ให้ความสอดคล้องกันระหว่างชื่อโปรเจ็กต์ใน Eclipse และไดเร็กทอรี / โฟลเดอร์โปรเจ็กต์ในที่เก็บ)

5) ใน Eclipse : ลบโปรเจ็กต์ทั้งหมดที่อยู่ในที่เก็บ แต่ต้องไม่ทำเครื่องหมายในช่อง 'ลบเนื้อหาจากระบบไฟล์' (โครงการไม่ควรมีตำแหน่งที่ถูกต้องของเนื้อหาของระบบไฟล์อีกต่อไปดังนั้นข้อมูลไม่สามารถลบได้ในทุกกรณี แต่จะปลอดภัยกว่าเสียใจด้วย)

6) ใน Eclipse : จากเมนูให้เลือกตัวเลือกไฟล์ | นำเข้า ...

7) ใน Eclipse : ในกล่องโต้ตอบเปิดโฟลเดอร์ 'Git' เลือก 'Projects from Git' และคลิก 'ถัดไป'

8) In Eclipse : ในกล่องโต้ตอบเลือก 'Local' และคลิก 'ถัดไป'

9) ใน Eclipse : ในกล่องโต้ตอบคลิกปุ่ม 'เพิ่ม ... '

10) ใน Eclipse : ในกล่องโต้ตอบตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่องถัดจากที่เก็บแล้วคลิก 'เสร็จสิ้น'

11) ใน Eclipse : ในกล่องโต้ตอบเลือกพื้นที่เก็บข้อมูลและคลิก 'ถัดไป'

12) ใน Eclipse : ในกล่องโต้ตอบเลือกปุ่มตัวเลือก 'นำเข้าโครงการที่มีอยู่' เลือก "Working Directory" และคลิก 'ถัดไป'

13) ใน Eclipse : ในกล่องโต้ตอบเลือกกล่องกาเครื่องหมายถัดจากโครงการที่คุณต้องการทำงานและคลิก 'เสร็จสิ้น'

14) ใน Eclipse : เปลี่ยนชื่อโครงการใด ๆ ที่อยู่ในพื้นที่เก็บข้อมูลหากต้องการดังนั้น (เพื่อความสอดคล้องระหว่าง Eclipse และระบบไฟล์ให้พวกเขามีชื่อเดียวกันกับไดเรกทอรีโครงการ / โฟลเดอร์ภายในไดเรกทอรีที่เก็บ / โฟลเดอร์)


+1 (ขบขันและไม่แปลกใจกับ 14 ขั้นตอนที่จำเป็นสำหรับ Eclipse โดยเฉพาะ 'หากคุณติดตั้ง Egit' โดยเพิ่มอีกไม่กี่ขั้นตอน ... )
Jack Wasey

7

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

.git/descriptionแม้ว่าจะใช้โดยการใช้งานบางอย่างเช่นGitWeb



4

เพื่อให้ง่ายเพียงลบโครงการ Eclipse นั้น (ไม่เลือกเนื้อหาบนดิสก์) จากนั้นนำเข้าโครงการอีกครั้ง

Eclipse จะระบุโครงการที่เชื่อมต่อกับ Git และวางไว้ในมุมมอง Git

มันทำงานเหมือนจับใจ


5
สิ่งนี้ไม่ตอบคำถามเดิม
mjuarez

นี่คือคำตอบสำหรับข้อคิดเห็นของDanny Remington - คำตอบของ OMSหรือไม่
Peter Mortensen

4

ด้วย GitHub เป็นรีโมทของคุณ

การเปลี่ยนชื่อ Remote Repo บน Github

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

จากหน้า repo หลักแท็บการตั้งค่าอยู่ทางขวาและชื่อ repo เป็นรายการแรกในหน้า:

ป้อนคำอธิบายรูปภาพที่นี่

Github จะเปลี่ยนเส้นทางคำขอไปยัง URL ใหม่

หนึ่งคุณลักษณะที่ดีมากในการ Github เมื่อคุณเปลี่ยนชื่อ repo เป็นที่Github จะบันทึกชื่อ repo เก่าและทุก URL ที่เกี่ยวข้องและการจราจรการเปลี่ยนเส้นทางไปยัง URL เนื่องจากชื่อผู้ใช้ / org และชื่อ repo ของคุณเป็นส่วนหนึ่งของ URL การเปลี่ยนชื่อจะเปลี่ยน URL

เนื่องจาก Github บันทึกชื่อ repo เก่าและเปลี่ยนเส้นทางคำขอไปยัง URL ใหม่หากใครก็ตามที่ใช้ลิงก์ตามชื่อ repo เก่าเมื่อพยายามเข้าถึงปัญหา wiki ดวงดาวหรือผู้ติดตามพวกเขาจะยังคงมาถึงที่ตั้งใหม่บนเว็บไซต์ Github Github ยังเปลี่ยนเส้นทางระดับที่ต่ำกว่าคำสั่ง Git ชอบgit clone, git fetchฯลฯ

ข้อมูลเพิ่มเติมอยู่ในวิธีใช้Github สำหรับการเปลี่ยนชื่อ Repo

การเปลี่ยนชื่อ Local Repo

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

Git ถูกออกแบบมาเพื่อกังวลเกี่ยวกับไฟล์ภายในโฟลเดอร์รูทเท่านั้น


"หากใครก็ตามใช้ลิงก์ตามชื่อ repo เก่า ... พวกเขาจะยังมาถึงที่ตั้งใหม่บนเว็บไซต์ Github" ใช่มีคุณสมบัติดังกล่าว สิ่งเดียวกันที่ถูกต้องสำหรับ BitBucket: community.atlassian.com/t5/Bitbucket-questions/... มันคงจะดีถ้ารู้วิธีทำลายการอ้างอิงใด ๆ กับชื่อเก่าอย่างสมบูรณ์เพราะความเข้าใจของฉันมันไม่ได้เปลี่ยนชื่อ แต่เป็นการคัดลอก ยินดีที่ได้ทราบขั้นตอนที่ถูกต้องสำหรับการเปลี่ยนชื่อเต็มรูปแบบ (ด้วยการทำลายสิ่งเก่าทั้งหมด)
Alexander Samoylov

@AlexanderSamoylov ฉันแค่เดาที่นี่ แต่ฉันสงสัยว่าอะไรที่บันทึกไว้ในรูปแบบเก่าอย่างจริงใจ Github ควรจะเก็บชื่อไฟล์เก็บถาวรเก่าไว้และเปลี่ยนเส้นทางการรับส่งข้อมูลใด ๆ ที่เข้ามาในชื่อไฟล์เก็บถาวรเก่าไปยังชื่อไฟล์เก็บถาวรใหม่ คือhttps://github.com/oldrepo/some_pathจะเปลี่ยนเส้นทางไปhttps://github.com/newrepo/some_pathที่ทุกอย่างถูกย้ายไป ข้อเสียเพียงอย่างเดียวคือชื่อ repo เก่าถูกสงวนไว้อย่างถาวรดังนั้นจึงไม่สามารถนำมาใช้ซ้ำได้ (เช่นกันเพื่อหลีกเลี่ยงผู้ที่บันทึก URL เก่าที่เข้าถึงมัน
LightCC

3

การเปลี่ยนชื่อหลักอยู่ที่นี่ (img 1) แต่ยังเปลี่ยน readme.md (img 2)

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


7
คำถามเกี่ยวกับคอมไพล์มากกว่า gitub
Yantao Xie

ไม่ได้เปลี่ยนชื่อเช่นนี้
Manjitha teshara


0

เปิดที่เก็บคอมไพล์บนเบราว์เซอร์และไปที่ "การตั้งค่า" คุณจะเห็นปุ่มเปลี่ยนชื่อ

ป้อนใหม่ "ชื่อพื้นที่เก็บข้อมูล" และคลิกปุ่ม "เปลี่ยนชื่อ"


0

คุณลองเปลี่ยนชื่อโครงการของคุณในpackage.jsonและดำเนินการคำสั่งgit initเพื่อเริ่มต้น Git ที่มีอยู่ใหม่แทน?

ประวัติ Git ที่คุณมีอยู่จะยังคงอยู่


-2

สิ่งนี้ใช้ได้กับฉันใน Windows 10 ผ่านทางบรรทัดคำสั่ง:

git checkout <oldname>
git branch -m <newname>

จากวิธีการเปลี่ยนชื่อสาขา Git ท้องถิ่นและระยะไกล

นี่เป็นที่เก็บในโลคัลเท่านั้น (ไม่ใช่ในรีโมตใด ๆ )

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