Thay đổi vị trí thư mục kho lưu trữ Git.


200

Với Git / Github cho Windows, nếu tôi có một kho lưu trữ với thư mục này: C:\dir1\dir2tôi cần phải làm gì để di chuyển các tập tin repo sang C:\dir1? Tôi rõ ràng có thể sao chép và dán các tệp một cách vật lý, nhưng tôi cần làm gì ở phía Git?

Tôi có repo này trên GitHub và tôi sử dụng Git Bash và GitHub cho Windows.


1
Nhìn vào câu trả lời này , nó giống nhau khi chuyển sang thư mục khác hoặc máy tính khác.
rekenerd

Câu trả lời:


234

Chỉ cần sao chép toàn bộ nội dung thư mục làm việc (bao gồm cả .gitthư mục ẩn ). Điều này sẽ di chuyển toàn bộ thư mục làm việc sang thư mục mới và sẽ không ảnh hưởng đến kho lưu trữ từ xa trên GitHub.

Nếu bạn đang sử dụng GitHub cho Windows, bạn có thể di chuyển kho lưu trữ bằng phương pháp như trên. Tuy nhiên, khi bạn nhấp vào kho lưu trữ trong ứng dụng, nó sẽ không thể tìm thấy nó. Để giải quyết vấn đề này, chỉ cần nhấp vào vòng tròn màu xanh bằng dấu!, Chọn Tìm và sau đó duyệt đến thư mục mới.


3
Nhưng làm thế nào về cách GitHub For Windows theo dõi repo cục bộ? Có một số cấu hình trên đó.

3
Khi tôi làm điều này trên Windows, nó buộc tôi phải tạo một repo mới.
472084

1
@Jleagle, Họ có thể đã thay đổi kể từ khi câu trả lời này được đăng. Tôi sẽ xem và cập nhật câu trả lời của tôi nếu cần thiết.
ctor

2
Không nên yêu cầu bạn tạo một repo mới: nếu điều đó xảy ra, rõ ràng bạn đã bỏ lỡ một tệp git (có thể là một tệp ẩn). Đã xảy ra với tôi, và khi tôi thử lại tôi nhận thấy tôi đã bỏ lỡ một số.
Juan

1
Tôi đang trên Win. Sau khi tôi di chuyển thư mục theo cách thủ công đến một vị trí mới, sau đó tôi mở lại Ứng dụng GUI Git và di chuyển thư mục dự án theo cách thủ công ở đó. Cách này hiệu quả với tôi.
kuncevic.dev 10/2/2015

42

Tôi không chắc chắn về câu hỏi, vì vậy đây là hai câu trả lời:

Nếu bạn muốn di chuyển kho lưu trữ của mình:

Đơn giản chỉ cần sao chép toàn bộ kho lưu trữ (với .gitthư mục của nó ).

Không có đường dẫn tuyệt đối trong .gitcấu trúc và không có gì ngăn cản nó được di chuyển nên bạn không có gì để làm sau khi di chuyển. Tất cả các liên kết đến github (xem trong .git/config) sẽ hoạt động như trước.

Nếu bạn muốn di chuyển các tập tin bên trong kho lưu trữ:

Đơn giản chỉ cần di chuyển các tập tin. Sau đó thêm các thay đổi được liệt kê trong git status. Việc tiếp theo commitsẽ làm cần thiết. Bạn sẽ rất vui khi biết rằng sẽ không có tệp nào bị trùng lặp: di chuyển tệp trong git gần như không tốn kém.


1
Nhưng làm thế nào về cách GitHub For Windows theo dõi repo cục bộ? Có một số cấu hình trên đó.

@ user596075 trong .gitthư mục.
OrangeDog 7/12/2015

24

Nếu bạn đang sử dụng GitHub Desktop, thì chỉ cần thực hiện các bước sau:

  1. Đóng GitHub Desktopvà tất cả các ứng dụng khác với các tệp đang mở vào đường dẫn thư mục hiện tại của bạn.
  2. Di chuyển toàn bộ thư mục như đã đề cập ở trên đến vị trí thư mục mới.
  3. Mở GitHub Desktopvà nhấp vào biểu tượng "không tìm thấy kho" màu xanh lam (!). Sau đó, một hộp thoại sẽ mở ra và bạn sẽ thấy nút "Xác định vị trí ..." sẽ mở một cửa sổ bật lên cho phép bạn hướng đường dẫn của nó đến một vị trí mới.

8

Trong khi câu hỏi liên quan đến Git cho Windows, đây dường như là kết quả hàng đầu ngay cả khi tìm kiếm Visual Studio Tools For Git (tiện ích mở rộng trong VS 2012, hỗ trợ riêng trong VS 2013).

Sử dụng các giải pháp ở trên làm hướng dẫn, tôi xác định rằng Visual Studio Git Tools giúp di chuyển repos (hoặc thậm chí toàn bộ cấu trúc thư mục cho tất cả các repos) cục bộ rất dễ dàng.

1) Đóng Visual Studio. 2) Di chuyển (các) thư mục Repo đến vị trí mới. 3) Mở Visual Studio. Mở Team Explorer. Chuyển sang chế độ xem "Kết nối" (biểu tượng cắm ở trên cùng). 3a) Nếu Repos vẫn hiển thị đường dẫn cũ, nhấp vào Làm mới để buộc cập nhật. 4) Các repos đã được di chuyển cục bộ sẽ không còn hiển thị trong " Kho Git cục bộ ". 5) Nhấp vào Thêm (không phải mới hoặc sao chép) và chọn thư mục repo để thêm.

Trong bước 5, bạn thực sự chỉ đang cung cấp một đường dẫn tìm kiếm và tìm kiếm sẽ tự động bao gồm tất cả các thư mục con. Nếu bạn có nhiều repos được tổ chức dưới một root duy nhất (repos độc lập chỉ có cùng thư mục cha) thì việc chọn cha sẽ bao gồm tất cả các repos được tìm thấy bên dưới.

Ví dụ: E: \ Repos \ RepoA E: \ Repos \ RepoB E: \ Repos \ RepoC

Trong Visual Studio Team Explorer [Thêm]> "E: \ Repos \"> [Thêm] sẽ trả lại cả ba cho Kho lưu trữ cục bộ.


6

Mặc dù tất cả các câu trả lời trước đây dường như đều nói rằng bạn chỉ có thể di chuyển thư mục và không có đường dẫn tuyệt đối trong cấu trúc .git. Tôi thấy điều này là sai sự thật khi sử dụng git từ Cygwin.

Khi tôi di chuyển git repo của mình (thực tế tôi đã khôi phục nó từ bản sao lưu, nhưng sang một ổ đĩa khác khi cấu trúc ổ đĩa của tôi thay đổi trên hệ thống mới của tôi). Tôi nhận được một thông báo lỗi như

fatal: Invalid path '<part_of_the_original_repo_path>': No such file or directory

Tôi đã sử dụng grep để thấy rằng trong tệp .git / config của tôi trong phần [core] là một biến worktree chứa đường dẫn tuyệt đối của repo git của tôi. Thay đổi này đã khắc phục vấn đề cho tôi.


4

Tôi sử dụng plugin git Visual Studio và tôi có một số trang web đang chạy trên IIS mà tôi muốn di chuyển. Một cách đơn giản làm việc cho tôi:

  1. Đóng Visual Studio.

  2. Di chuyển mã (bao gồm thư mục git, v.v.)

  3. Nhấp vào tệp giải pháp từ vị trí mới

Điều này làm mới ánh xạ tới vị trí mới, sử dụng các tệp git cục bộ hiện có đã được di chuyển. Khi tôi trở lại Visual Studio, cửa sổ Team Explorer của tôi hiển thị các repos ở vị trí mới.


2

Tôi sử dụng Github Desktop cho Windows và tôi muốn di chuyển vị trí của kho lưu trữ. Không có vấn đề gì nếu bạn di chuyển thư mục của mình và chọn vị trí mới trong phần mềm. Nhưng nếu bạn đặt một thư mục xấu, bạn sẽ gặp một lỗi nghiêm trọng và không có cơ hội thứ hai để thực hiện chuyển đổi sang thư mục tốt. Vì vậy, để sửa chữa đó. Bạn phải sao chép các tệp dự án trong thư mục xấu, tạo lại nó bằng Github Desktop, sau đó, bạn có thể di chuyển lại dự án của mình trong một thư mục khác và thực hiện di chuyển trong phần mềm. Không cần phải đóng Github Desktop cho điều đó, nó sẽ kiểm tra các thư mục trực tiếp.

Hy vọng điều này sẽ giúp được ai đó.


1

Điều này đã không làm việc cho tôi. Tôi đã chuyển một repo từ (ví dụ) c: \ project1 \ sang c: \ repo \ project1 \ và Git cho các cửa sổ không hiển thị bất kỳ thay đổi nào.

trạng thái git hiển thị lỗi vì một trong các mô hình con "không phải là kho lưu trữ git" và hiển thị đường dẫn cũ. ví dụ: (tên được thay đổi để bảo vệ IP)

fatal: Không phải là kho git: C: /project1/.git/modules/subproject/subproject2 fatal: 'git status --por chì' không thành công trong tiểu dự án

Tôi đã phải chỉnh sửa thủ công các tệp .git trong các mô hình con để trỏ đến đường dẫn tương đối chính xác đến repo của mô hình con (trong thư mục .git / mô-đun chính của repo)


1

Báo cáo từ tương lai: Tháng 4 năm 2018.

Tôi muốn bình thường hóa các repos cục bộ của mình trên máy Mac và Windows, đã kết thúc trong các thư mục cục bộ khác nhau.

Ứng dụng khách Windows 10 khiến tôi trải qua thói quen "Không thể tìm thấy"> "Xác định vị trí", tẻ nhạt nhưng không khủng khiếp. Cũng cần cập nhật "đường dẫn bản sao" cục bộ trong Tùy chọn để sử dụng trong tương lai.

Khi tôi hợp nhất các thư mục mac, ứng dụng khách Github chỉ tìm thấy chúng một lần nữa - tôi không phải làm gì cả!


0

Để đặt đường dẫn cục bộ mặc định cho kho lưu trữ của bạn cho mỗi lần bạn sao chép một trong số chúng, bạn chỉ phải sao chép một kho lưu trữ một lần và đặt Localpath: / your-path, sau đó github tự động phát hiện đường dẫn đó làm mặc định.


Điều này dường như không trả lời câu hỏi ban đầu - có lẽ bạn có thể làm rõ cách câu trả lời của bạn thêm một cái gì đó vào câu trả lời đã được chấp nhận? Cảm ơn.
rwp

0

Một cách tiếp cận dựa trên Git hơn sẽ là thực hiện các thay đổi đối với bản sao cục bộ của bạn bằng cách sử dụng cd hoặc sao chép và dán và sau đó đẩy các thay đổi này từ kho lưu trữ cục bộ sang kho lưu trữ từ xa.

Nếu bạn thử kiểm tra trạng thái của repo cục bộ, nó có thể hiển thị "các thay đổi chưa được theo dõi" thực sự là các tệp được di dời. Để thúc đẩy những thay đổi này một cách mạnh mẽ, bạn cần tạo các tệp / thư mục này bằng cách sử dụng

$ git add -A
#And commiting them
$ git commit -m "Relocating image demo files"
#And finally, push
$ git push -u local_repo -f HEAD:master

Hy vọng nó giúp.

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.