দূরবর্তী গিট সংগ্রহস্থলের জন্য কীভাবে ইউআরআই (ইউআরএল) পরিবর্তন করবেন?


3887

আমার একটি ইউএসবি কীতে আমার রেপো (উত্স) রয়েছে যা আমি আমার হার্ড ড্রাইভে (স্থানীয়) ক্লোন করেছি। আমি "উত্স" কে একটি এনএএস এ স্থানান্তরিত করেছি এবং এখান থেকে এটির সফলভাবে পরীক্ষার পরীক্ষা করেছি।

আমি "স্থানীয়" এর সেটিংসে "উত্স" এর ইউআরআই পরিবর্তন করতে পারি কিনা তা জানতে চাই তাই এটি এখন এনএএস থেকে টানবে, না ইউএসবি কী থেকে।

আপাতত আমি দুটি সমাধান দেখতে পাচ্ছি:

  • ইউএসবি-অরাইঙ্কে সমস্ত কিছু চাপুন এবং এটিকে আবার এনএএস-এ অনুলিপি করুন (নাস-উত্সে নতুন প্রতিশ্রুতির কারণে প্রচুর কাজ বোঝা যাচ্ছে);

  • "স্থানীয়" তে একটি নতুন রিমোট যুক্ত করুন এবং পুরানোটি মুছুন (আমি ভয় করি আমি আমার ইতিহাসটি ভেঙে দেব)।


6
আমাকে এটি পুরানো সংস্করণের গিট (1.5.5.5) এ করতে হয়েছিল এবং সেট-url বিকল্পটি উপস্থিত ছিল না। কেবল অযাচিত রিমোট মুছে ফেলা এবং একই নামের সাথে একটি নতুন যুক্ত করা কোনও সমস্যা ছাড়াই কাজ করেছে এবং ইতিহাস ঠিক রেখে দিয়েছে।
হটএন

আমার ক্ষেত্রে আমার অনুমতি চেক করা দরকার আমার কাছে দুটি ব্যক্তিগত গিট রিপোজিটরি রয়েছে এবং এই দ্বিতীয় অ্যাকাউন্টটি সেই নতুন
রেপোটির

উত্তর:


6320

আপনি পারেন

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

(দেখুন git help remote) বা আপনি .git/configসেখানে URL গুলি সম্পাদনা করতে এবং পরিবর্তন করতে পারেন । আপনি ইতিহাস হারানোর যদি না আপনি খুব নিরীহ কিছু করতে কোন বিপদের মধ্যে না হন (এবং আপনি যদি চিন্তিত করছি, শুধু আপনার রেপো একটি কপি করতে, যেহেতু আপনার রেপো হয় আপনার ইতিহাস।)


29
আপনার যদি আলাদা শেল ব্যবহারকারী থাকে তবে নতুন ইউআরএল শুরুতে আপনি নিজের গিট ব্যবহারকারী নির্দিষ্ট করতে চান যেমন:myself@git://new.url.here
sobi3ch

13
এছাড়াও আপনি আপনার নতুন মূল অবস্থানের জন্য মাস্টার মূল প্রজেক্টের শাখা সেট করতে চান করতে পারেন: git branch -u origin/master। এটি আপনাকে প্রতিবার git pushথাকার পরিবর্তে অনুমতি দেবে git push origin master
ক্যালোরেক

32
@kelorek অথবা আপনি পারবেন শুধু git push -u origin masterপ্রথমবার :)
হবস

26
git remote set-url --push origin git://...উত্স সেট করার জন্য আমাকেও ছিল ... (ধাক্কা) url।
jpillora

3
একাধিক শাখার জন্য, আপনি git push -u --allসমস্ত শাখাকে একবারে নতুন ইউআরএলে (পরিবর্তে git push -u origin master)
বেন

898
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)

রিমোটের ইউআরএল পরিবর্তন করা হচ্ছে


100

গিট অরিজিন সার্ভারের জন্য হোস্ট পরিবর্তন করুন

থেকে: http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/

আশা করি এটি আপনার করার মতো কিছু নয়। আমি যে সার্ভারটি ব্যবহার করেছি তার সাথে কয়েকটি গিট প্রকল্পের সাথে ডোমেন নামটির মেয়াদ শেষ হয়ে গেছে colla এর অর্থ সিঙ্কে ফিরে আসার জন্য স্থানীয় সংগ্রহস্থলগুলিকে স্থানান্তর করার কোনও উপায় খুঁজে পাওয়া।

আপডেট: সাম্প্রতিক গিট সংস্করণ (ফেব্রুয়ারী, 2010 এর পরে) সহ একটি সহজ উপায় আছে তা নির্দেশ করার জন্য @ মওলফকে ধন্যবাদ:

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

বিশদ জন্য ম্যান পৃষ্ঠা দেখুন।

আপনি যদি কোনও পুরানো সংস্করণে থাকেন তবে এটি ব্যবহার করে দেখুন:

ক্যাভিয়েট হিসাবে, এটি কেবল একই নামের সাথে একই সার্ভার হিসাবে কাজ করে, ঠিক বিভিন্ন নামে।

ধরে নিই যে নতুন হোস্ট-নেম newhost.comএবং পুরানো নামটি ছিল oldhost.com, পরিবর্তনটি বেশ সহজ।

.git/configআপনার কার্যকারী ডিরেক্টরিতে ফাইল সম্পাদনা করুন । আপনার কিছু দেখতে হবে:

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

পরিবর্তন oldhost.comকরুন newhost.com, ফাইলটি সংরক্ষণ করুন এবং আপনার কাজ শেষ হয়েছে।

আমার সীমিত পরীক্ষা থেকে ( git pull origin; git push origin; gitx) সমস্ত কিছু ক্রমযুক্ত মনে হয়। এবং হ্যাঁ, আমি জানি গিট অভ্যন্তরগুলির সাথে জগাখিচুড়ি করা এটি খারাপ ফর্ম।


খারাপ ফর্ম? সম্ভবত। তবে আপনার যদি কিছু করার দরকার হয় তবে লেখকরা কারও কাছে কখনও করার প্রয়োজন হবে বলে আশা করেনি, তবে কখনও কখনও অভ্যন্তরীণ সাথে জগাখিচুড়ি করা প্রয়োজন। তবে আপনি যদি ভুলটি পান তবে পরিণতিগুলি মানতে রাজি থাকতে হবে। Backup your local repository _before_ messing with git internals.
জেসি

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

(বিকল্পভাবে, খুলুন .git/config, সন্ধান [remote "origin"]করুন এবং url =লাইনটি সম্পাদনা করুন ।

রিমোটগুলি পরীক্ষা করে এটি পরীক্ষা করে দেখতে পারেন:

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

পরের বার আপনি ধাক্কা দেওয়ার পরে, আপনাকে নতুন উজানের শাখাটি নির্দিষ্ট করতে হবে, যেমন:

git push -u origin master

আরও দেখুন: গিটহাব: একটি রিমোটের ইউআরএল পরিবর্তন করা


আমি .git / কনফিগার করে সম্পাদনা করে নতুন উত্স সেট করতে পারিনি। এটি বলেছে যে ইউআরএল নামক গিট সংগ্রহস্থলটি গিট সংগ্রহস্থল নয়। একবার আমি উত্সটি সরিয়ে আবার তৈরি করেছি, সবকিছু ঠিকঠাক ছিল। যদিও আমি আমার সমস্যার সমাধান হিসাবে গিট রিমোট সেট-ইউআরএল সন্ধান করিনি।
অক্টোপাসগ্র্যাববাস

git push -uকমান্ড সহ সম্পূর্ণ উত্তর দেওয়ার জন্য +1 অন্যের কাছে সম্ভবত সুস্পষ্ট, আমার পক্ষে ছিল না।
টেস্টফ্রেক

37

দূরবর্তী ইউআরএল স্যুইচ করা

ওপেন টার্মিনাল।

প্রথম পদক্ষেপ: - বর্তমান স্থানীয় ডিরেক্টরি আপনার স্থানীয় প্রকল্পে পরিবর্তন করুন।

২ য় পদক্ষেপ: - আপনি যে রিমোটটি পরিবর্তন করতে চান তার নাম পেতে আপনার বিদ্যমান রিমোটগুলি তালিকাবদ্ধ করুন।

git remote -v

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

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

গিট রিমোট সেট-url কমান্ডের সাহায্যে আপনার রিমোটের URL টি এইচটিপিএস থেকে এসএসএইচ করুন to

তৃতীয় পদক্ষেপ: - git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

চতুর্থ পদক্ষেপ: - এখন যাচাই করুন যে রিমোট URL টি পরিবর্তন হয়েছে।

git remote -v নতুন দূরবর্তী URL টি যাচাই করুন

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

নতুন উত্স যুক্ত করার আগে আপনার কি পুরানো উত্সটি সরিয়ে ফেলতে হবে?
স্লেজ

আমি প্রকল্প থেকে কিছুই সরিয়ে নেই। আমি কেবল উপরের পদক্ষেপগুলি
সহজভাবেই

27
  1. গিটব্যাশ গিট রিমোট আরএম উত্সে কমান্ড ব্যবহার করে উত্স সরিয়ে দিন
  2. এবং এখন গিটব্যাশ গিট রিমোট অ্যাড অরিজিন (বিট বাল্টিতে আপনার প্রকল্পের সংগ্রহস্থল থেকে এইচটিটিপি ইউআরএল অনুলিপি) ব্যবহার করে নতুন উত্স যুক্ত করুন

এটি সত্যিই দরকারী উত্তর কারণ git remote rm originগিট ছাড়াই পুরানো উত্স সম্পর্কে বিশদ মনে রাখে।
মাটো

উপরে git remote rm originসমাধান করা একাধিক রিমোটের ইস্যু: বিষয় যেখানে আমি দূরবর্তী url সেট করতে সক্ষম হয়নি। remote.origin.url has multiple values fatal: could not set 'remote.origin.url'
বিটস্যান্ড

21

গিট রিমোট সেট-url {নাম} {url

প্রাক্তন) git remote set-url origin https://github.com/myName/GitTest.git


18

আপনার রেপো টার্মিনাল থেকে নীচের কমান্ডটি লিখুন:

git remote set-url origin git@github.com:<username>/<repo>.git

পড়ুন এই দূরবর্তী URL টি পরিবর্তন সম্পর্কে আরো বিস্তারিত জানার জন্য লিঙ্ক।


1
এটি সাহায্য করেছে link লিঙ্কটি কার্যকর হয়েছিল
এএনপি

15

যদি আপনি ক্লোন করে থাকেন তবে আপনার স্থানীয় স্বয়ংক্রিয়ভাবে গঠিত হবে,

দূরবর্তী URL যেখানে এটি ক্লোন হয়ে যায়।

আপনি এটি ব্যবহার করে পরীক্ষা করতে পারেন git remote -v

যদি আপনি এটি পরিবর্তন করতে চান,

git remote set-url origin https://github.io/my_repo.git

এখানে,

উত্স - আপনার শাখা

আপনি যদি বিদ্যমান শাখাটি ওভাররাইট করতে চান তবে আপনি এটি ব্যবহার করতে পারেন .. এটি আপনার বিদ্যমান ওভাররাইড করবে ... এটি করবে,

git remote remove url
and 
git remote add origin url

তোমার জন্য...


আমার একাধিক রিমোট যুক্ত হয়েছিল, সুতরাং git remote rm originসম্পর্কিত সমস্ত ইউআরএল অপসারণের জন্য কমান্ডের প্রয়োজন ছিল। তারপরে অ্যাড কমান্ড কাজ করেছিল।
বিটস্যান্ড

14

গিট দূরবর্তী সংযোগটি পরীক্ষা করতে:

git remote -v

এখন, স্থানীয় সংগ্রহস্থল দূরবর্তী গিটে সেট করুন:

git remote set-url origin https://NewRepoLink.git

এখন এটিকে প্রবাহিত করতে বা নিম্নলিখিত কোড ব্যবহারের জন্য চাপ দিন:

git push --set-upstream origin master -f


1
আমি চাপ দিচ্ছিলাম এবং তবুও গিথুব আমার নতুন শাখাটি দেখায় নি। এটি সর্বশেষে --set-upstreamএটি কার্যকর করেছে।
ওডেলিলি

11

এর git@github.comচেয়ে দূরবর্তী গিট ইউআরআই পরিবর্তন করুনhttps://github.com

git remote set-url origin git@github.com:<username>/<repo>.git

উদাহরণ:

git remote set-url origin git@github.com:Chetabahana/my_repo_name.git

সুবিধাটি হ'ল আপনি যখন ssh-এজেন্ট ব্যবহার করেন তখন git pushস্বয়ংক্রিয়ভাবে করতে পারেন :

#!/bin/bash

# Check ssh connection
ssh-add -l &>/dev/null
[[ "$?" == 2 ]] && eval `ssh-agent`
ssh-add -l &>/dev/null
[[ "$?" == 1 ]] && expect $HOME/.ssh/agent

# Send git commands to push
git add . && git commit -m "your commit" && git push -u origin master

নিচের মতো প্রত্যাশা ব্যবহার $HOME/.ssh/agentকরে চালানোর জন্য একটি স্ক্রিপ্ট ফাইল রাখুন :ssh-add

#!/usr/bin/expect -f
set HOME $env(HOME)
spawn ssh-add $HOME/.ssh/id_rsa
expect "Enter passphrase for $HOME/.ssh/id_rsa:"
send "<my_passphrase>\n";
expect "Identity added: $HOME/.ssh/id_rsa ($HOME/.ssh/id_rsa)"
interact

10

গিট ব্যাশে, কমান্ডটি প্রবেশ করুন:

git remote set-url origin https://NewRepoLink.git

শংসাপত্রগুলি প্রবেশ করান

সম্পন্ন



10

এটি করার আপনার অনেক উপায় রয়েছে:

কনসোল

git remote set-url origin [Here new url] 

কেবলমাত্র নিশ্চিত হয়ে নিন যে আপনি এটি কোনও সংগ্রহস্থল যেখানে রেখেছেন।

কনফিগ

এটি .git / কনফিগারেশনে স্থাপন করা হয়েছে (সংগ্রহস্থল হিসাবে একই ফোল্ডার)

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = [Here new url]  <------------------------------------
...

TortoiseGit

পদক্ষেপ 1 - ওপেন সেটিংস

পদক্ষেপ 2 - url পরিবর্তন করুন

তারপরে কেবল ইউআরএল সম্পাদনা করুন।

SourceTree

  1. সংগ্রহস্থল সেটিংস উইন্ডোটি খুলতে সরঞ্জামদণ্ডে "সেটিংস" বোতামটি ক্লিক করুন।

  2. সংগ্রহস্থলে দূরবর্তী সংগ্রহের পথ জুড়তে "যুক্ত করুন" ক্লিক করুন। একটি "রিমোট বিশদ" উইন্ডোটি খুলবে।

  3. দূরবর্তী পথের জন্য একটি নাম লিখুন।

  4. দূরবর্তী সংগ্রহস্থলের জন্য URL / पथ প্রবেশ করান Enter

  5. দূরবর্তী সংগ্রহস্থলের হোস্টিং পরিষেবার জন্য ব্যবহারকারীর নাম লিখুন।

  6. দূরবর্তী পথ যোগ করতে 'ওকে' ক্লিক করুন।

  7. সংগ্রহস্থল সেটিংস উইন্ডোতে ফিরে 'ওকে' ক্লিক করুন। নতুন রিমোট পাথটি এখনই সংগ্রহস্থলের মধ্যে যুক্ত করা উচিত।

  8. আপনার যদি ইতিমধ্যে যুক্ত করা দূরবর্তী পাথ সম্পাদনা করতে হয় তবে কেবল 'সম্পাদনা' বোতামটি ক্লিক করুন। আপনাকে "রিমোট বিশদ" উইন্ডোতে পরিচালিত করা উচিত যেখানে আপনি দূরবর্তী পথের বিশদ (ইউআরএল / পথ / হোস্টের ধরণ) সম্পাদনা করতে পারেন।

  9. দূরবর্তী সংগ্রহস্থলটির পথ সরাতে 'সরান' বোতামটি ক্লিক করুন

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

সুত্র। সমর্থন


9
$ git remote rm origin
$ git remote add origin git@github.com:aplikacjainfo/proj1.git
$ git config master.remote origin
$ git config master.merge refs/heads/master

8
দশ বছরের পুরনো প্রশ্নের উত্তর যুক্ত করে যখন আরও একুশটি উত্তর দেওয়া থাকে তখন আপনার উত্তরটির একটি ব্যাখ্যা অন্তর্ভুক্ত করা এবং প্রশ্নের উত্তরের কোন নতুন দিকটি আপনার ঠিকানা সম্বোধন করে তা সত্যই গুরুত্বপূর্ণ। উত্তরগুলির সাথে যেগুলি আদেশের একটি সিরিজ, সেগুলি প্রতিটি কী করছে এবং যদি সম্ভব হয় তবে তাদের প্রতিটিের কীভাবে প্রভাবগুলি পূর্বাবস্থায় ফেলা যায় তা ব্যাখ্যা করা কার্যকর। যদি কেউ প্রথম কয়েকটি পদক্ষেপ সম্পাদন করতে সক্ষম হয় তবে তা পূর্বাবস্থায় ফেরানো গুরুত্বপূর্ণ তবে পরবর্তী পদক্ষেপে ত্রুটির মুখোমুখি।
জেসন অ্যালার 16

@ জেসন অ্যালার আমি মনে করি এটি মোটামুটি স্ব-ব্যাখ্যামূলক এবং যদিও এখানের সেরা উত্তর, অন্যরা একটি রসিকতা।
অলিভার ডিকসন

7

আপনি যদি টরটোইজিট ব্যবহার করছেন তবে নীচের পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার স্থানীয় চেকআউট ফোল্ডারে যান এবং যেতে ডান ক্লিক করুন TortoiseGit -> Settings
  2. বাম ফলকে বেছে নিন Git -> Remote
  3. ডান ফলকে নির্বাচন করুন origin
  4. এখন URLআপনার নতুন দূরবর্তী সংগ্রহস্থলটি যেখানে পাঠ্য বাক্সের মানটি পরিবর্তন করুন

আপনার শাখা এবং আপনার সমস্ত স্থানীয় কমিট অক্ষত থাকবে এবং আপনি আগের মতো কাজ চালিয়ে যেতে পারেন।


6

এখানে চিত্র বর্ণনা লিখুন

সমস্যা সমাধান :

রিমোট পরিবর্তন করার চেষ্টা করার সময় আপনি এই ত্রুটিগুলির মুখোমুখি হতে পারেন। এর মতো কোনও দূরবর্তী '[নাম]' নেই

এই ত্রুটির অর্থ হ'ল আপনি যে রিমোটটি বদলের চেষ্টা করেছেন তা বিদ্যমান নেই:

গিট রিমোট সেট-ইউআরএল সফাকে https://github.com/octocat/Spoon- আত্মহত্যা মারাত্মক: এরকম কোনও দূরবর্তী 'সোফেক' নয়

আপনি সঠিকভাবে দূরবর্তী নাম টাইপ করেছেন তা পরীক্ষা করে দেখুন।

তথ্যসূত্র: https://help.github.com/articles/changing-a-remote-s-url/


3

করতে পরিবর্তন দূরবর্তী মূল প্রজেক্টের: git remote set-url origin <url>


আরও উজানের প্রবাহ যুক্ত করতে : git remote add newplace <url>

সুতরাং আপনি কোথায় কাজ করবেন git push origin <branch>বা বেছে নিতে পারেন git push newplace <branch>


1
আমি একাধিক উজানে কাজ করার অন্যান্য উল্লেখ খুঁজে
পাইনি

2

আপনি কনফিগার ফাইলটি সম্পাদনা করে url পরিবর্তন করতে পারেন। আপনার প্রকল্পের রুটে যান:

nano .git/config

তারপরে ইউআরএল ক্ষেত্রটি সম্পাদনা করুন এবং আপনার নতুন ইউআরএল সেট করুন। পরিবর্তনগুলি সংরক্ষণ করুন। আপনি কমান্ডটি ব্যবহার করে পরিবর্তনগুলি যাচাই করতে পারেন।

git remote -v 

1

যারা ভিজ্যুয়াল স্টুডিও 2019 থেকে এই পরিবর্তন করতে চান তাদের জন্য

টিম এক্সপ্লোরার খুলুন (Ctrl + M)

হোম -> সেটিংস

গিট -> সংগ্রহস্থল সেটিংস

রিমোটস -> সম্পাদনা করুন

এখানে চিত্র বর্ণনা লিখুন


1

যদি আপনার ভাণ্ডারটি ব্যক্তিগত হয়

  1. স্টার্ট মেনু থেকে কন্ট্রোল প্যানেলটি খুলুন
  2. ব্যবহারকারী অ্যাকাউন্ট নির্বাচন করুন
  3. বাম হাতের মেনুতে "আপনার শংসাপত্রগুলি পরিচালনা করুন" নির্বাচন করুন
  4. গিট বা গিটহাব সম্পর্কিত কোনও শংসাপত্র মুছুন

উল্লেখ


1

আপনার অধিকার পরীক্ষা করুন

আমার ক্ষেত্রে আমার নিজের ব্যবহারকারীর নামটি পরীক্ষা করা দরকার

আমার পৃথক শংসাপত্র সহ দুটি বা তিনটি সংগ্রহস্থল রয়েছে।

সমস্যাটি আমার অনুমতি হ'ল আমার কাছে দুটি বেসরকারী গিট সার্ভার এবং সংগ্রহস্থল রয়েছে

এই দ্বিতীয় অ্যাকাউন্টটি সেই নতুন রেপোর প্রশাসক এবং প্রথমটি হ'ল আমার ডিফল্ট ব্যবহারকারী অ্যাকাউন্ট এবং আমার প্রথমে অনুমতি দেওয়া উচিত

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.