git - thêm nguồn gốc từ xa so với nguồn gốc set-url từ xa


413

Tôi tạo một kho lưu trữ mới:

git init
echo "# MESSAGE" >> README.md
git add README.md
git commit -m "first commit"

Sau đó, tôi muốn đẩy cam kết của mình vào kho lưu trữ từ xa trống được tạo trên github để tôi phải đặt từ xa.

Sự khác biệt giữa việc sử dụng các lệnh sau là gì? :

git remote add origin git@github.com:User/UserRepo.git
git remote set-url origin git@github.com:User/UserRepo.git

Cuối cùng, tôi thực hiện đẩy:

git push -u origin master

Chỉnh sửa1:

Điều gì xảy ra khi tôi gọi nguồn gốc set-url từ xa ngay sau git init? Có nguồn gốc set-url từ xa tạo nguồn gốc? Nếu nguồn gốc đã tồn tại sau git init, không có sự khác biệt giữa việc sử dụng các lệnh đó trong kịch bản của tôi, phải không?

Câu trả lời:


509

bên dưới được sử dụng để thêm một điều khiển từ xa mới:

git remote add origin git@github.com:User/UserRepo.git

bên dưới được sử dụng để thay đổi url của kho lưu trữ từ xa hiện có:

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

bên dưới sẽ đẩy mã của bạn đến nhánh chính của kho lưu trữ từ xa được xác định origin-ucho phép bạn trỏ nhánh cục bộ hiện tại của mình đến nhánh chính từ xa:

git push -u origin master

Tài liệu


nếu tôi sao chép từ A sang cục bộ của mình và sau đó sử dụng "git remote set-url B". nó sẽ xóa kho lưu trữ trong A? Tôi đang cố gắng sao chép một kho lưu trữ từ mã AWS cam kết với GitLab
Josh

thông thường khi tôi yêu cầu một repo mới, tôi đã mắc lỗi và đặt nguồn gốc lên thượng nguồn. Cuối cùng, bạn cần phải sửa nó bằng lệnh 2git remote set-url origin git@github.com:User/UserRepo.git
Honey

-u hãy để bạn chỉ chi nhánh địa phương hiện tại của bạn đến chi nhánh chính từ xa Tôi không hiểu tại sao tôi muốn làm như vậy. Ý tôi là hãy nói rằng tôi đã lấy từ chủ, tạo một tính năng mớiBranch ... đã cam kết các thay đổi của tôi và sau đó đẩy các thay đổi của tôi sang origin / FeatureBranch và sau đó tôi đã hợp nhất / kéo tính năng đó vào chủ của mình. <- tại thời điểm này tôi không thực hiện được với tính năng của mình? Tại sao tôi cần nó để trỏ đến nhánh chủ từ xa? Tôi không nên kiểm tra địa phương / chủ và sau đó lấy từ nguồn gốc mới nhất?
Mật ong

Câu trả lời là rất tốt, ngoại trừ việc giải thích về -ucờ, theo tôi, là sai lệch. Để giải thích về -ucờ, tôi khuyên bạn nên xem qua chủ đề stackoverflow.com/questions/18867824/ này
hoang tran

và -u cho phép bạn trỏ chi nhánh địa phương hiện tại của mình đến chi nhánh chính từ xa: Tôi không hiểu dòng này ... Ý của bạn là gì?
Mưa

62
  • Khi bạn chạy git remote add origin git@github.com:User/UserRepo.git, sau đó một điều khiển từ xa mới được đặt tên origin.
  • Khi bạn chạy git remote set-url origin git@github.com:User/UserRepo.git, git tìm kiếm từ xa có tên originvà thay đổi url kho lưu trữ từ xa. Nếu git không thể tìm thấy bất kỳ điều khiển từ xa nào có tên origin, Nó sẽ báo lỗi fatal: No such remote 'origin'.

Nếu bạn định tạo một kho lưu trữ mới thì hãy sử dụng git remote add origin git@github.com:User/UserRepo.gitđể thêm remote.


Vui lòng xem Edit1
Irbis

git initkhông thêm bất kỳ nguồn gốc. Chỉ có kho git sẽ được khởi tạo. Nếu bạn sao chép bất kỳ kho lưu trữ hiện có thì nó có nguồn gốc từ xa. Khuyến nghị là sử dụng git add, sau khi git initkhông set-url.
Ram

@Ram Rõ ràng là không gọi set-url sau git init vì nó không có ý nghĩa. set-url là để thay đổi và thêm là để thêm điều khiển từ xa mới.
Santosh

61

Dưới đây sẽ xác định lại repo địa phương của bạn; đồng thời xóa repos từ xa (tức là nguồn gốc):

git init

Sau đó, bên dưới, sẽ tạo 'nguồn gốc' nếu nó không tồn tại:

git remote add origin [repo-url]

Khác, bạn có thể sử dụng set-urltiểu ban để chỉnh sửa một điều khiển từ xa hiện có:

git remote set-url origin [repo-url]

Ngoài ra, bạn có thể kiểm tra điều khiển từ xa hiện có với

git remote -v

Hi vọng điêu nay co ich!


1
git remote set-url origin ...trên một repo mới bắt đầu đã cho tôi thông điệp chí mạng: Không có "nguồn gốc" từ xa như vậy. git remote add origin ...đã làm việc.
Vandaveer

@RobbVandaveer Cảm ơn bạn đã bắt! Tôi đã cập nhật câu trả lời cho việc sử dụng đúng tiểu banset-url
vpibano

32

git remote add=> ADDS một điều khiển từ xa mới.

git remote set-url=> CẬP NHẬT từ xa hiện có.


  1. Tên từ xa đi sau addlà một tên từ xa mới không tồn tại trước lệnh đó.
  2. Tên từ xa đi sau set-urlnên đã tồn tại dưới dạng tên từ xa vào kho lưu trữ của bạn.

git remote add myupstream someurl => tên từ xa myupstream hiện không tồn tại khi tạo nó bằng lệnh này.

git remote set-url upstream someurl => tên từ xa ngược dòng đã tồn tại Tôi chỉ thay đổi url của nó.


git remote add myupstream https://github.com/nodejs/node => **ADD** If you don't already have upstream
git remote set-url upstream https://github.com/nodejs/node # => **UPDATE** url for upstream

30

Để thêm một điều khiển từ xa mới, hãy sử dụng git remote add lệnh trên thiết bị đầu cuối, trong thư mục kho lưu trữ của bạn được lưu trữ tại.

Các git remote set-url lệnh thay đổi URL kho từ xa hiện có.

Vì vậy, về cơ bản, remote addlà để thêm một cái mới, remote set-urllà để cập nhật một cái hiện có


28

1. git remote add origin git@github.com:User/UserRepo.git

  • Lệnh này là bước thứ hai trong chuỗi lệnh sau khi bạn khởi tạo git vào kho lưu trữ làm việc hiện tại của mình bằng cách sử dụng git init .
  • Lệnh này có nghĩa đơn giản là "bạn đang thêm vị trí của kho lưu trữ từ xa nơi bạn muốn đẩy / kéo tệp của mình đến / từ !! .."
  • Kho lưu trữ từ xa của bạn có thể ở bất cứ đâu trên github, gitlab, bitbucket, v.v.
  • Đây originlà một bí danh / tên thay thế cho kho lưu trữ từ xa của bạn để bạn không phải nhập toàn bộ đường dẫn cho điều khiển từ xa và do đó, bạn đang tuyên bố rằng bạn sẽ sử dụng tên này (nguồn gốc) để chỉ từ xa của bạn. Tên này có thể là bất cứ điều gì.
  • Để xác minh rằng điều khiển từ xa được đặt đúng loại: git remote -v

    HOẶC LÀ git remote get-url origin

2. git remote set-url origin git@github.com:User/UserRepo.git

Lệnh này có nghĩa là nếu lần đầu tiên bạn vô tình đẩy đến một kho lưu trữ sai, bạn có thể "đặt lại đường dẫn kho lưu trữ từ xa" bằng cách sử dụng lệnh trên.

3. git push -u remote master

Lệnh này chỉ đơn giản là đẩy các tệp của bạn đến kho lưu trữ từ xa. Nó có một khái niệm về một cái gì đó được gọi là "chi nhánh" , vì vậy bằng mọi thứ mặc định sẽ được đẩy lên thạc sĩ ngành trừ khi xác định một cách rõ ràng một chi nhánh khác.

Để biết về danh sách tất cả các chi nhánh bạn có trong loại kho lưu trữ của mình:git branch


10

Thử cái này:

git init  
git remote add origin your_repo.git  
git remote -v  
git status  

7

Bạn không thể gọi remote set-url originngay sau đógit init , bởi vì git remote set-urllệnh sẽ không tạo nguồn gốc, nhưng nó thay đổi URL kho lưu trữ từ xa hiện có .

vì vậy lệnh git remote set-urlsẽ chỉ hoạt động nếu bạn đã nhân bản kho lưu trữ hoặc thêm thủ công từ xa được gọi là origin.

bạn có thể kiểm tra từ xa bằng lệnh, git remote -vnó sẽ hiển thị url từ xa sau tên hoặc nếu lệnh này có lỗi như vậy fatal: Not a git repository (or any of the parent directories): .gitthì kho lưu trữ không tồn tại, vì vậy bạn phải thêm gốc bằng lệnhgit remote add

1. git remote add

Lệnh này được sử dụng để thêm một điều khiển từ xa mới, bạn có thể sử dụng lệnh này trên thiết bị đầu cuối, trong thư mục của kho lưu trữ của bạn.

Lệnh git remote add có hai đối số:

  1. Một tên từ xa , ví dụ, nguồn gốc
  2. Một URL từ xa , ví dụ: https://github.com/user/repo.git

Ví dụ:

git remote add origin https://github.com/user/repo.git

2.git remote set-url

Lệnh git set-url từ xa thay đổi URL kho lưu trữ từ xa hiện có.

Lệnh git từ xa set-url có hai đối số:

  1. Một tên từ xa hiện có . Ví dụ, originhoặcupstream là hai lựa chọn phổ biến.
  2. Một URL mới cho điều khiển từ xa

Ví dụ: bạn có thể thay đổi URL từ xa của mình từ SSH sang HTTPS bằng git remote set-urllệnh.

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

bạn có thể xác minh rằng URL từ xa đã thay đổi, bằng lệnh git remote -v.

lưu ý: "nguồn gốc" là một quy ước không phải là một phần của lệnh. "origin" là tên cục bộ của kho lưu trữ từ xa. bạn có thể sử dụng bất kỳ tên nào thay vì "nguồn gốc".

Ví dụ:

git remote add myorigin git@github.com:user/repo.git
git remote set-url myorigin https://github.com/user/repo.git

Tài liệu tham khảo từ github: add từ xa , từ xa thiết url


0

nếu bạn có dự án hiện có và bạn muốn thêm url kho lưu trữ từ xa thì bạn cần thực hiện theo lệnh sau

git init

nếu bạn muốn thêm tệp readme.md thì bạn có thể tạo nó và thêm nó bằng lệnh bên dưới.

git add README.md

thực hiện cam kết đầu tiên của bạn bằng cách sử dụng lệnh dưới đây

git commit -m "first commit"

Bây giờ bạn đã hoàn thành tất cả quá trình lưu trữ cục bộ, bây giờ làm thế nào bạn thêm url kho lưu trữ từ xa? kiểm tra bên dưới lệnh này là cho url ssh, bạn có thể thay đổi nó cho https.

git remote add origin git@github.com:user-name/repository-name.git

Làm thế nào bạn đẩy cam kết đầu tiên của bạn xem lệnh dưới đây :

git push -u origin master
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.