Câu hỏi Thay đổi URI (URL) cho kho lưu trữ Git từ xa


Tôi có một repo (nguồn gốc) trên một khóa USB mà tôi nhân bản trên ổ đĩa cứng của tôi (địa phương). Tôi đã chuyển "origin" sang NAS và thử nghiệm thành công nhân bản nó từ đây.

Tôi muốn biết nếu tôi có thể thay đổi URI của "nguồn gốc" trong các thiết lập của "địa phương" để nó bây giờ sẽ kéo từ NAS, và không phải từ khóa USB.

Hiện tại, tôi có thể thấy hai giải pháp:

  • đẩy tất cả mọi thứ vào usb-orign, và sao chép nó vào NAS một lần nữa (ngụ ý rất nhiều công việc do cam kết mới để xuất xứ mũi);

  • thêm một từ xa mới để "địa phương" và xóa một cũ (tôi sợ tôi sẽ phá vỡ lịch sử của tôi).


2800
2018-03-12 12:48


gốc


Tôi đã phải làm điều này trên một phiên bản cũ của git (1.5.6.5) và tùy chọn set-url không tồn tại. Đơn giản chỉ cần xóa các từ xa không mong muốn và thêm một cái mới với cùng tên làm việc mà không có vấn đề và duy trì lịch sử tốt. - HotN


Các câu trả lời:


Bạn có thể

git remote set-url origin git://new.url.here

(xem git help remote) hoặc bạn chỉ có thể chỉnh sửa .git/config và thay đổi URL ở đó. Bạn không có nguy cơ mất lịch sử trừ khi bạn làm điều gì đó rất ngớ ngẩn (và nếu bạn lo lắng, chỉ cần tạo một bản sao của repo của bạn, vì repo của bạn  lịch sử của bạn.)


4577
2018-03-12 12:55



Nếu bạn có người dùng trình bao khác thì có thể bạn muốn chỉ định người dùng git của mình ở đầu url mới, ví dụ: myself@git://new.url.here - sobi3ch
Bạn cũng có thể muốn thiết lập nhánh thượng nguồn chính cho vị trí gốc mới của bạn với: git branch -u origin/master. Điều này sẽ cho phép bạn git push thay vì phải git push origin master mỗi lần. - kelorek
@kelorek hoặc bạn chỉ có thể git push -u origin master lần đầu tiên :) - hobbs
Tôi cũng phải git remote set-url --push origin git://... để đặt url gốc (push). - jpillora
sử dụng https: // thay vì git: // - Anil


git remote -v
# View existing remotes
# origin  https://github.com/user/repo.git (fetch)
# origin  https://github.com/user/repo.git (push)

git remote set-url origin https://github.com/user/repo2.git
# Change the 'origin' remote's URL

git remote -v
# Verify new remote URL
# origin  https://github.com/user/repo2.git (fetch)
# origin  https://github.com/user/repo2.git (push)

Thay đổi URL của từ xa


581
2017-10-10 14:43



Là một người sợ thiết bị đầu cuối do thiếu phản hồi trực quan, tôi đánh giá cao câu trả lời của bạn. - daniel.sedlacek
Tôi thích câu trả lời này. Nó hoàn chỉnh hơn. - Gabriel Villacis
Không phải vì tôi không thích câu trả lời của hobbs, nhưng tôi nghĩ với các chi tiết thì dễ hiểu hơn đối với tất cả mọi người ngay cả đối với các kỹ sư (hoặc không phải kỹ sư) mới bắt đầu. - Gabriel Villacis


Thay đổi máy chủ cho máy chủ gốc Git

từ: http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/

Hy vọng rằng đây không phải là điều bạn cần làm. Máy chủ mà tôi đang sử dụng để cộng tác trên một vài dự án git với tên miền hết hạn. Điều này có nghĩa là tìm cách di chuyển các kho lưu trữ cục bộ để lấy lại đồng bộ.

Cập nhật: Nhờ @mawolf chỉ ra có một cách dễ dàng với các phiên bản git gần đây (bài đăng tháng 2 năm 2010):

git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git

Xem trang người đàn ông để biết chi tiết.

Nếu bạn đang sử dụng phiên bản cũ hơn, hãy thử cách này:

Như một lời nhắc nhở, điều này chỉ hoạt động vì nó là cùng một máy chủ, chỉ với các tên khác nhau.

Giả sử rằng tên máy chủ mới là newhost.comvà cái cũ là oldhost.com, sự thay đổi khá đơn giản.

Chỉnh sửa .git/config trong thư mục làm việc của bạn. Bạn sẽ thấy một cái gì đó như:

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git

Thay đổi oldhost.com đến newhost.com, lưu tệp và bạn đã hoàn tất.

Từ thử nghiệm giới hạn của tôi (git pull origin; git push origin; gitx) mọi thứ dường như theo thứ tự. Và có, tôi biết đó là hình thức xấu để gây rối với git internals.


77
2018-02-15 02:52



Hình thức xấu? Có lẽ. Nhưng nếu bạn nhu cầu để làm điều gì đó mà các tác giả đã không mong đợi bất cứ ai sẽ cần phải làm, sau đó đôi khi rối tung với nội bộ là bắt buộc. Nhưng bạn phải sẵn sàng chấp nhận hậu quả nếu bạn làm sai. Backup your local repository _before_ messing with git internals. - Jesse Chisholm


git remote set-url origin git://new.location

(cách khác, mở .git/config, tìm kiếm [remote "origin"]và chỉnh sửa url = hàng.

Bạn có thể kiểm tra nó hoạt động bằng cách kiểm tra các điều khiển từ xa:

git remote -v
# origin  git://new.location (fetch)
# origin  git://new.location (push)

Lần tới khi bạn đẩy, bạn sẽ phải chỉ định chi nhánh ngược dòng mới, ví dụ:

git push -u origin master

Xem thêm: GitHub: Thay đổi URL của từ xa


37
2018-04-26 23:13



Tôi không thể thiết lập nguồn gốc mới bằng cách chỉnh sửa .git / config. Nó cho biết kho git có tên trong URL không phải là kho lưu trữ git. Khi tôi đã xóa và tạo lại nguồn gốc, tất cả đều tốt. Tôi đã không nhìn lên git từ xa set-url như là một giải pháp cho vấn đề của tôi, mặc dù. - octopusgrabbus


  1. loại bỏ nguồn gốc bằng cách sử dụng lệnh trên gitbash git remote rm xuất xứ 
  2. Và bây giờ thêm nguồn gốc mới bằng gitbash git remote add origin (Sao chép URL HTTP từ kho lưu trữ dự án của bạn trong nhóm bit) làm xong

14
2018-06-24 11:10





git remote set-url {name} {url}

cũ) git remote set-url origin https://github.com/myName/GitTest.git


13
2017-12-28 04:53





Chuyển đổi URL từ xa

Mở Terminal.

Bước Ist:- Thay đổi thư mục làm việc hiện tại thành dự án cục bộ của bạn.

Bước 2:- Liệt kê các điều khiển từ xa hiện có của bạn để lấy tên của điều khiển từ xa mà bạn muốn thay đổi.

Bước 3:- - git remote -v

origin  https://github.com/USERNAME/REPOSITORY.git (fetch)

origin  https://github.com/USERNAME/REPOSITORY.git (push)

Thay đổi URL từ xa của bạn từ HTTPS sang SSH bằng lệnh git remote set-url.

Bước 4:- - git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

Bây giờ Xác minh rằng URL từ xa đã thay đổi.

Bước 5:- - git remote -v Xác minh URL từ xa mới

origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
origin  git@github.com:USERNAME/REPOSITORY.git (push)

12
2017-12-08 11:01