Nguồn gốc từ xa đã tồn tại trên 'git đẩy' đến một kho lưu trữ mới


548

Tôi có dự án của mình trên GitHub tại một số địa điểm git@github.com:myname/oldrep.git,.

Bây giờ tôi muốn đẩy tất cả mã của mình sang một kho lưu trữ mới tại một số vị trí khác , git@github.com:newname/newrep.git.

Tôi đã sử dụng lệnh:

git remote add origin git@github.com:myname/oldrep.git

nhưng tôi đang nhận được điều này:

gây tử vong: nguồn gốc từ xa đã tồn tại.


6
Đưa ra đầu ra của lệnh $> git remote -v show
sykora


Một cách tốt là sử dụng "nhập từ kho lưu trữ khác" ở cuối kho lưu trữ mới được tạo của bạn, nếu bạn biết URL của kho lưu trữ cũ.
JW.ZG 16/07/2016

Một câu hỏi tương tự đã được hỏi ở đây: stackoverflow.com/questions/2432764/ từ
jciloa

1
Nếu bạn muốn giữ điều khiển từ xa ban đầu, bạn chỉ cần sử dụng một tên khác git remote add origin2 ...., nhưng nếu bạn chỉ cần ấn một lần mà không sửa đổi cấu hình repo thì bạn có thể chỉ cần làm git push git@github.com:user/another-project.git master:master.
ccpizza

Câu trả lời:


870

Bạn đang gặp lỗi này vì "nguồn gốc" không có sẵn. "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.

Ví dụ, bạn cũng có thể viết:

git remote add myorigin git@github.com:myname/oldrep.git  
git remote add testtest git@github.com:myname/oldrep.git

Xem hướng dẫn:

http://www.kernel.org/pub/software/scm/git/docs/git-remote.html

Để xóa kho lưu trữ từ xa, bạn nhập:

git remote rm origin

Một lần nữa "origin" là tên của kho lưu trữ từ xa nếu bạn muốn loại bỏ từ xa "ngược dòng":

git remote rm upstream

8
"git remote rm origin" không hoạt động với tôi, nếu nó không hoạt động đối với bạn, hãy thử kiểm tra với "git remote -v", điều này sẽ cho bạn biết nếu nguồn gốc của bạn có một url, nếu nó không có khả năng là bạn đã làm init cục bộ và đang cố gắng đẩy nó từ xa, và làm một sai lầm như tôi). Sau đó, hãy làm theo câu trả lời của RobinH: git remote set-url origin git@github.com: username / projectname.git
Clarence Liu

1
kiểm tra câu trả lời này để buộc url
srodriguex

"git remote rm origin" hoạt động như một cơ duyên, thật tuyệt vời! :) puhh, tôi chưa quen với thuật ngữ của git vì vậy nó là một tìm kiếm lớn hơn, nhưng câu trả lời của bạn đã giúp tôi rất nhiều. :) cảm ơn bạn!
Martin Pfeffer

3
git push -u origin master --force
Ronnie Royston

- lực lượng là giải pháp!
người tạo

260

Các giải pháp trước đây dường như bỏ qua nguồn gốc, và họ chỉ đề nghị sử dụng tên khác. Khi bạn chỉ muốn sử dụng git push origin, tiếp tục đọc.

Vấn đề xuất hiện do một trật tự cấu hình Git sai được tuân theo. Bạn có thể đã thêm 'nguồn gốc git' vào cấu hình .git của mình.

Bạn có thể thay đổi nguồn gốc từ xa trong cấu hình Git của mình bằng dòng sau:

git remote set-url origin git@github.com:username/projectname.git

Lệnh này đặt một URL mới cho kho lưu trữ Git mà bạn muốn đẩy tới. Quan trọng là điền tên người dùngtên dự án của riêng bạn


7
Cảm ơn, chính xác những gì tôi phải làm :)
winkbrace

Fiexd này cho tôi. Nhưng điều thực sự giúp tôi với vấn đề này là vì tôi sử dụng PortableGit đã được cài đặt với Gihub cho windows. Tôi đã tìm thấy giải pháp ở đây
PerseP 18/03/2016

Tuyệt quá! Tôi cần thay đổi repo đáng tin cậy của tôi thành git lab repo và giải pháp này là hoàn hảo! Cảm ơn bạn!
Marcelo dos Santos

Tương tự như OP, và tôi cần phải làm điều này và sau đó là giải pháp của @ MrHus.
Sean the Bean

4
Đây là câu trả lời hay nhất IMHO
kratos

83

Nếu bạn đã đặt tên nhầm tên địa phương là "nguồn gốc", bạn có thể xóa nó bằng cách sau:

git remote rm origin

"Đặt tên nhầm tên địa phương là" nguồn gốc "thực sự có nghĩa là gì? Bạn có thể giải thích chi tiết về nó không? @Ozgur
Yuan Wen

1
Điều này có thể có nghĩa là bạn đã thêm nguồn gốc từ xa không trỏ đến kho lưu trữ git. Do đó, nếu bạn dự định đẩy tất cả các thay đổi của mình lên bản gốc, git sẽ phàn nàn rằng nguồn gốc từ xa không phải là kho lưu trữ git.
Gautham Honnavara

22

PHƯƠNG PHÁP1->

Vì nguồn gốc đã tồn tại loại bỏ nó.

git remote rm origin
git remote add origin https://github.com/USERNAME/REPOSITORY.git

PHƯƠNG PHÁP2->

Người ta cũng có thể thay đổi URL kho lưu trữ từ xa hiện có bằng cách -> git set-url từ xa

Nếu bạn đang cập nhật để sử dụng HTTPS

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

Nếu bạn đang cập nhật để sử dụng SSH

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

Nếu cố gắng cập nhật một điều khiển từ xa không tồn tại, bạn sẽ gặp lỗi. Vì vậy, hãy cẩn thận về điều đó.

PHƯƠNG PHÁP3->

Sử dụng lệnh git remote đổi tên để đổi tên một điều khiển từ xa hiện có. Một tên từ xa hiện có, ví dụ, nguồn gốc.

git remote rename origin startpoint
# Change remote name from 'origin' to 'startpoint'

Để xác minh tên mới của điều khiển từ xa->

git remote -v

Nếu chưa quen với Git, hãy thử hướng dẫn này->

HƯỚNG DẪN THỬ


1
Cảm ơn rất nhiều. Tôi đã được tải xuống, một người khác git và sau đó muốn sao chép nó vào GitHub của tôi. Cuối cùng, tôi thành công khi sử dụng phương pháp đầu tiên của bạn.
Naimur Hasan

17

Bạn chỉ có thể chỉnh sửa tệp cấu hình của mình trong trình soạn thảo văn bản.

Trong phần ~/.gitconfigbạn cần đưa vào một cái gì đó như sau:

[user]
        name  = Uzumaki Naruto
        email = myname@example.com

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

Trong oldrep/.git/configtệp (trong tệp cấu hình của kho lưu trữ của bạn):

[remote "github"]
        url = git@github.com:myname/oldrep.git
        push  = +refs/heads/*:refs/heads/*
        push  = +refs/tags/*:refs/tags/*

Nếu có một phần từ xa trong tệp cấu hình của kho lưu trữ của bạn và URL khớp, bạn chỉ cần thêm cấu hình đẩy. Nếu bạn sử dụng URL công khai để tìm nạp, bạn có thể đặt URL để đẩy dưới dạng 'Pushurl' (cảnh báo: điều này yêu cầu phiên bản Git mới phát hành 1.6.4).


10
  1. git remote rm origin

  2. git remote -v Nó sẽ không hiển thị bất kỳ tên kho lưu trữ

  3. git remote add origin git@github.com:username/myapp.git

  4. git push origin master Nó sẽ bắt đầu quá trình và tạo chi nhánh mới. Bạn có thể thấy công việc của bạn được đẩy lên github.


8

Bạn không phải xóa từ xa "gốc" hiện tại của mình, chỉ cần sử dụng tên khác với "nguồn gốc" cho tiện ích từ xa của bạn, ví dụ:

git từ xa thêm github git@github.com: myname / oldrep.git


8
git remote rm origin
git remote add origin git@github.com:username/myapp.git

6

Tôi gặp vấn đề tương tự, và đây là cách tôi khắc phục nó sau khi thực hiện một số nghiên cứu:

  1. Tải xuống GitHub cho Windows hoặc sử dụng một cái gì đó tương tự, bao gồm cả vỏ
  2. Mở Git Shellmenu từ nhiệm vụ. Điều này sẽ mở một vỏ năng lượng bao gồm các lệnh Git.
  3. Trong trình bao, chuyển sang kho lưu trữ cũ của bạn, vd cd C:\path\to\old\repository
  4. Hiển thị trạng thái của kho lưu trữ cũ

  5. Bây giờ loại bỏ kho lưu trữ từ xa khỏi kho lưu trữ cục bộ bằng cách sử dụng

    git remote rm origin
    
  6. Kiểm tra lại với bước 4. Nó sẽ originchỉ hiển thị , thay vì đường dẫn tìm nạp và đẩy.

  7. Bây giờ kho lưu trữ từ xa cũ của bạn bị ngắt kết nối, bạn có thể thêm kho lưu trữ từ xa mới. Sử dụng như sau để kết nối với kho lưu trữ mới của bạn.

Lưu ý: Trong trường hợp bạn đang sử dụng Bitbucket, trước tiên bạn sẽ tạo một dự án trên Bitbucket. Sau khi tạo, Bitbucket sẽ hiển thị tất cả các lệnh Git cần thiết để đẩy kho lưu trữ của bạn lên điều khiển từ xa, trông giống như đoạn mã tiếp theo. Tuy nhiên, điều này làm việc cho các kho khác, quá.

cd /path/to/my/repo # If haven't done yet
git remote add mynewrepo https://user@bitbucket.org/team-or-user-name/myproject.git
git push -u mynewrepo master # To push changes for the first time

Đó là nó.


5

Tôi gặp vấn đề tương tự khi lần đầu tiên thiết lập bằng Bitbucket .

Vấn đề của tôi là tôi cần thay đổi nguồn gốc từ cho một cái gì đó tự xác định. Tôi đã sử dụng tên của ứng dụng. Vì thế:

git remote add AppName https://someone@bitbucket.org/somewhere/something.git

4

Bạn nên thay đổi tên của kho lưu trữ từ xa sang tên khác.

git remote add origin git@github.com:myname/oldrep.git

đến

git remote add neworigin git@github.com:myname/oldrep.git

Tôi nghĩ rằng điều này sẽ làm việc.

Có, đây là cho kho init và thêm một điều khiển từ xa mới. Chỉ với một sự thay đổi tên.


3

Bạn cũng có thể thay đổi tên kho lưu trữ mà bạn muốn chuyển sang trong tệp REPOHOME / .git / config

(trong đó REPOHOME là đường dẫn đến bản sao cục bộ của kho lưu trữ).


1

Điều này cũng có thể xảy ra khi bạn quên thực hiện một cam kết đầu tiên.


0

Bạn cần kiểm tra originvà thêm nếu không tồn tại.

if ! git config remote.origin.url >/dev/null; then
    git remote add origin git@github.com:john/doe.git
fi

Tạo tập tin check.sh, dán tập lệnh cập nhật URL kho git của bạn và chạy ./check.sh.


0

Bước 1

git remote rm origin

Bước 2

git remote add origin enter_your_repository_url

Thí dụ:

git remote add origin https://github.com/my_username/repository_name.git

-1

Đầu tiên, viết dòng mã này để loại bỏ từ xa:

$ git remote rm origin

và sau đó viết dòng này:

$ git remote add origin https://github.com/khadim321/React-Form.git

Nó hoạt động tốt.


vui lòng cố gắng cung cấp thêm lời giải thích để cung cấp thêm giá trị cho câu trả lời của bạn
Zeina

Tôi không chắc liệu nó có giúp ai đó thêm một trong các kho github của bạn làm nguồn gốc từ xa không. Câu hỏi này đã được trả lời một vài lần. Kiểm tra câu hỏi khác trước khi tạo một câu hỏi mới với chất lượng thấp như vậy.
thmspl

-1

nếu bạn muốn tạo một kho lưu trữ mới với cùng một dự án bên trong github và Remote trước đó không cho phép bạn làm điều đó trong trường hợp đó Đầu tiên Xóa Kho lưu trữ đó trên github thì bạn chỉ cần xóa thư mục .git C: \ Users \ Shiva \ AndroidStudioProjects \ yourprojectname \ .git xóa thư mục đó , (đảm bảo bạn nhấp vào tệp ẩn vì thư mục này bị ẩn)

Ngoài ra, nhấp vào dấu trừ (nút Xóa) từ studio android Cài đặt-> VersionControl bấm vào đây để xóa điều khiển Phiên bản khỏi Android Và sau đó bạn sẽ có thể tạo Kho lưu trữ mới.

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.