Làm thế nào để đổi tên thư mục gốc git?


85

Tôi vừa mới bắt đầu sử dụng git trong Vista, với kho lưu trữ của tôi bên dưới /path/to/project/git repo.

Bây giờ tôi thấy rằng không gian trong tên thư mục là một kích thích nhỏ khi làm việc trong git bash.

Tôi có thể đổi tên thư mục thành /path/to/project/gitrepokhông? Mọi thứ bên trong cấu hình git có tương đối không hay có bất kỳ thứ gì đề cập đến thư mục mẹ một cách rõ ràng không?

Tôi đã thử chỉ lấy một bản sao cửa sổ của thư mục chính và chạy git bash trên đó và 'git log' hiển thị những thay đổi tôi đã thực hiện trước đó. Vì vậy, tôi cho rằng đổi tên thư mục chính là OK, nhưng tôi muốn chắc chắn trước khi tiếp tục.

Câu trả lời:


53

Để sửa đổi một chút câu trả lời của Greg , vâng, mọi thứ với git repo đều liên quan đến thư mục mẹ, nhưng:.git

(và điều này có thể sẽ không ảnh hưởng trực tiếp đến bạn, tôi chỉ đề cập đến những lý do đó ở đây vì lợi ích của sự hoàn chỉnh.):

  • đường dẫn của chính repo có thể được tham chiếu bởi các dịch vụ khác đang chạy trên máy tính của bạn (Apache, ssh, một repo khác khai báo repo của bạn là điều khiển từ xa, sử dụng đường dẫn tệp đầy đủ, lớp gitolite khai báo repo của bạn trong một đường dẫn nhất định, ... )
  • một số hoạt động sử dụng đường dẫn đầy đủ của repo (ví dụ như GIT_INDEX_FILEsử dụng trong một filter-branchlệnh, hãy xem chuỗi này ), do đó, rõ ràng, không đổi tên thư mục gốc trong khi thực hiện một hoạt động phức tạp trên repo của bạn.

Thêm vào đó, "bản sao cửa sổ" (thay vì a git clone), sẽ sao chép mọi thứ bao gồm cả các móc, có thể bao gồm đường dẫn tuyệt đối trong tập lệnh của chúng nếu bạn đã chỉnh sửa chúng và thực hiện loại sửa đổi đó.


2
vì vậy nếu bất kỳ ai có các bước thực tế, rõ ràng để đảm bảo thực hiện, điều đó sẽ rất hữu ích.
ahnbizcad

@gwho là bước nào, bên cạnh việc đổi tên thư mục repo?
VonC

88

Có, thật an toàn khi đổi tên thư mục chứa kho lưu trữ Git. Tất cả các đường dẫn bên trong kho lưu trữ Git là tương đối.


4

Vui lòng kiểm tra các bình luận trước ...

Theo tôi, tốt nhất là sử dụng quy trình làm việc git , đặc biệt là khi bạn sử dụng máy chủ git (kho lưu trữ chính từ xa), có nghĩa là:

  • nhận được thư mục cũ đồng bộ với máy chủ git của bạn ( git pull, git pushvà cuối cùng git statusđể xem nếu mọi thứ đều tốt)
  • git clone <former directory> <new directory>

(Vì tôi cũng là người mới làm quen với GIT, đây có thể không phải là câu trả lời chính xác, đầy đủ. Tôi đã có cùng câu hỏi với Mick và vì mục đích học tập, tôi đã cố gắng làm theo cách git :) Cảm ơn vì manh mối, vonC! Vui lòng sửa cho tôi, nếu cần :)


1
Nếu bạn git clone <former directory> <new directory>, bạn không cần tạo cái <new directory>đầu tiên. Các git clonesẽ tạo nó cho bạn.
VonC

3
Tôi không nghĩ rằng điều này làm những gì bạn muốn. Điều này đặt nguồn gốc của <new directory>thành <old directory>. Vì vậy, một git remote -vtrong <new directory>sẽ hiển thị origin C:/old/directory.
kvu787

1
Tôi đồng ý với @ kvu787, điều này không giống như những gì được yêu cầu và có thể sẽ gây ra rất nhiều vấn đề.
alkanen

@ kvu787 @alkanen, Liệu nó giúp đỡ, những gì một người sử dụng gợi ý: git remote rm origin- để loại bỏ thư mục cũ của bạn như là nguồn gốc của đại diện mới của bạn và - cd .. and rm -rf <former directory>để xóa thư mục cũ
Pythonic

@PythoNic, nếu repo cũ có điều khiển từ xa tên là "origin" thì không, điều này sẽ không ổn vì repo mới của bạn sẽ không còn điều khiển từ xa đó nữa. Nếu không, điều đó sẽ ổn, nhưng việc đổi tên thư mục sẽ đơn giản hơn.
kvu787

0

có bạn có thể thay đổi nó. repo của bạn vẫn trực tiếp đến git của bạn .. chỉ cần không xóa / chỉnh sửa tên của .git fo

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.