গিট / গিটহাব মাস্টারকে চাপ দিতে পারে না


151

আমি গিট / গিটহাবের কাছে নতুন এবং একটি ইস্যুতে দৌড়ে এসেছি। আমি একটি পরীক্ষার প্রকল্প তৈরি করে এটিকে স্থানীয় সংগ্রহস্থলে যুক্ত করেছি। এখন আমি ফাইল / প্রকল্প দূরবর্তী সংগ্রহস্থলের সাথে যুক্ত করার চেষ্টা করছি।

আমি যা করেছি তা এখানে (এবং এটি কাজ করেছে) -

git remote add origin git://github.com/my_user_name/my_repo.git

এখন যখন আমি নীচের কমান্ডটি ব্যবহার করে গিটহাবের কাছে সংগ্রহস্থলটি পুশ করার চেষ্টা করি তখন আমি নীচের ত্রুটিটি পাই -

git push origin master

ত্রুটি -

fatal: remote error:
You can't push to git://github.com/my_user_name/my_repo.git
Use git@github.com:my_user_name/my_repo.git

সমস্ত গিথাব পৃষ্ঠাগুলির নীচে একটি সহায়তা লিঙ্ক রয়েছে ( help.github.com )। সহায়তা এটি সহ অনেকগুলি বিষয় বর্ণনা করে। আমি সেগুলি পড়ার পরামর্শ দিচ্ছি এবং তারপরে আপনি যে নির্দিষ্ট জিনিসগুলি বুঝতে পারছেন না সে সম্পর্কে প্রশ্ন জিজ্ঞাসা করবেন।
জামেসান

21
জামেসান যদি সহায়তা পৃষ্ঠাগুলিতে একটি নির্দিষ্ট অবস্থানের দিকে ইঙ্গিত করে থাকে তবে এটি আরও কার্যকর হত।
দেওনোম

উত্তর:


244

গিটহব গিট প্রোটোকলের উপরে চাপ দেওয়া সমর্থন করে না, যা ইউআরএল শুরুতে আপনার ব্যবহারের দ্বারা নির্দেশিত git://। ত্রুটি বার্তায় যেমন বলা হয়েছে, আপনি চাপ দিতে চাইলে আপনার গিথহাব আপনাকে যে সংগ্রহস্থলের জন্য দেখায় git@github.com:my_user_name/my_repo.gitসেই https://URL ব্যবহার করে আপনার SSH URL বা "স্মার্ট এইচটিটিপি" প্রোটোকলটি ব্যবহার করা উচিত TP

(আপডেট: আমার অবাক করে দিয়ে কিছু লোক আপাতদৃষ্টিতে ভেবেছিল যে এর মাধ্যমে আমি পরামর্শ দিচ্ছিলাম যে "https" এর অর্থ "স্মার্ট এইচটিটিপি", যা আমি ছিলাম না it "স্মার্ট HTTP- র" যে GitHub ব্যবহারসমূহ চালু করা হয় - হয় পারেন উপর ব্যবহার করা যেতে পারে httpবা https। হস্তান্তর গীত দ্বারা ব্যবহৃত নীচের লিঙ্কে ব্যাখ্যা করা আছে প্রোটোকল মধ্যে পার্থক্য)।

আপনি যদি উত্সের URL পরিবর্তন করতে চান তবে আপনি কেবল এটি করতে পারেন:

git remote set-url origin git@github.com:my_user_name/my_repo.git

অথবা

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

আরও তথ্য 10.6 গিট অভ্যন্তরীণ - স্থানান্তর প্রোটোকলগুলিতে পাওয়া যায়


সুতরাং আমি ইউআরএল পরিবর্তন করেছি এবং পুশটি আবার চেষ্টা করেছি, এই ত্রুটিটি এখনই পান - ERROR: my_user_name / my_repo.git বিদ্যমান নেই। আপনি কি এটি সঠিকভাবে প্রবেশ করেছেন? মারাত্মক: দূরবর্তী
প্রান্তটি

আপনি যে ইউআরএলটি সেট করেছেন তা কি নিশ্চিতভাবেই গিটহাবের আপনার সংগ্রহস্থলের জন্য পৃষ্ঠাটি থেকে অনুলিপি-পেস্ট করতে পারবেন? (এটা কেস সংবেদনশীল হয়, প্রসঙ্গক্রমে।)
মার্ক Longair

1
ঠিক আছে, ভাল আপনি গিটহাবের দিকে ধাক্কা দেওয়ার আগে এটি সংগ্রহস্থল তৈরি করতে হবে - আপনি যখন এটি করেন, এটি আপনাকে কীভাবে ক্লোন করতে হবে বা সংগ্রহস্থলটিতে কীভাবে চাপ দেবে সে সম্পর্কে আপনাকে নির্দেশাবলী দেবে।
লংগায়ারকে

1
আমি ঠিক এই একই সমস্যা ছিল। আসলে সমস্যাটি হ'ল github.com এবং আপনার ব্যবহারকারীর নামের মধ্যে আপনার "/" স্ল্যাশ রয়েছে। এবং এটি একটি কোলন হওয়া উচিত ":"। সমস্যাটি হ'ল: ডি
উইলমার ই হেনাও

2
@ উইলমারএহেনাএইচ: এটি আপনার সমস্যা হতে পারে তবে এটি প্রশ্নে বা আমার উত্তর নিয়ে সমস্যা ছিল না;) (আগ্রহের জন্য, মাঝে মাঝে গিটের মধ্যে এসএসএইচ ইউআরএল দুটি স্টাইল নিয়ে বিভ্রান্তি দেখা দেয় , যার মধ্যে একটি ব্যবহার করে হোস্টনাম এবং পথ পৃথক করার জন্য একটি কোলন এবং এর মধ্যে অন্যটি নেই))
মার্ক লংগায়ার

37

ব্যবহারের মার্ক Longair এর উত্তর কিন্তু সংগ্রহস্থলে HTTPS দ্বারা লিঙ্কটি ব্যবহার করতে ভুলবেন না:

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

আপনি তারপর ব্যবহার করতে পারেন git push origin master


1
এটা আমার জন্য কাজ করে. তারপরে শুধু টাইপও git pushকাজ করে।
অল্প বয়স্ক

13

মার্ক লংগায়ারের এর সমাধানটি ব্যবহারটি git remote set-url...বেশ স্পষ্ট। .Git / কনফিগার ফাইলের এই বিভাগটি সরাসরি সম্পাদনা করে আপনি একই আচরণ পেতে পারেন:

আগে:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git://github.com/my_user_name/my_repo.git

পরে:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:my_user_name/my_repo.git

(এবং বিপরীতে, অনুরোধ git remote set-url...উপরের পরিবর্তনটি উত্পন্ন করে))


2

এটির জন্য নতুন কারও কাছে একটি সহজ সমাধান রয়েছে:

আপনার স্থানীয় .git ডিরেক্টরিতে কনফিগারেশন ফাইলটি সম্পাদনা করুন ( config)। নীচে পরিবর্তন git:করুন https:

[remote "origin"]
    url = https://github.com/your_username/your_repo

1
ভুল, https প্রোটোকল পুশ করতে দেয় না। দেখুন: "প্রো গিট" বই, বিভাগ 4.1.4 "এইচটিটিপি / এস প্রোটোকল"। লিঙ্ক: git-scm.com/book/en/v2
কেভিন জে রাইস

@ KevinJ.Rice: UHM, এটা যেখানে বলা আছে যে ? গিথুব স্মার্ট এইচটিটিপি প্রোটোকল ব্যবহার করে এবং এটি ঠিক জরিমানা করতে দেয় ।
মার্টিজন পিটারস

1

গিট ক্লায়েন্টকে আপগ্রেড করার পরে আমার এই সমস্যাটি ছিল এবং হঠাৎ আমার সংগ্রহশালাটি চাপ দিতে পারেনি।

আমি দেখতে পেলাম যে কিছু পুরানো রিমোটের ভুল মূল্য ছিল url, এমনকি আমার বর্তমানে সক্রিয় রিমোটের মাধ্যমেও একই মান urlছিল এবং এটি ভাল কাজ করছিল।

তবে এখানে pushurlপরমও ছিল, তাই পুরানো দূরবর্তীটির জন্য এটি যুক্ত করা আমার পক্ষে কাজ করেছিল:

আগে:

[remote "origin"]
    url = git://github.com/user/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    pushurl = git@github.com:user/repo.git

দ্রষ্টব্য: "কনফিগারেশন" ফাইলের এই অংশটি যুগে যুগে অব্যবহৃত ছিল, তবে নতুন ক্লায়েন্টটি ভুল ইউআরএল সম্পর্কে অভিযোগ করেছেন:

[remote "composer"]
    url = git://github.com/user/repo.git
    fetch = +refs/heads/*:refs/remotes/composer/*

সুতরাং আমি pushurlপরমটিকে পুরানো রিমোটে যুক্ত করেছি:

[remote "composer"]
    url = git://github.com/user/repo.git
    fetch = +refs/heads/*:refs/remotes/composer/*
    pushurl = git@github.com:user/repo.git

1

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

git clone git://github.com/....git

এটি আপনাকে মূলত একজন টানা-শুধুমাত্র ব্যবহারকারী হিসাবে সেট আপ করে, যিনি পরিবর্তনগুলি এগিয়ে নিতে পারেন না।

আমি আমার রেপোর .git/configফাইলটি খুলে এবং লাইনটি পরিবর্তন করে এটি ঠিক করেছি:

[remote "origin"]
    url = git://github.com/myusername/myrepo.git

প্রতি:

[remote "origin"]
    url = ssh+git://git@github.com/myusername/myrepo.git

ব্যবহারকারীর ssh+gitসাথে এই প্রোটোকলটি gitগিথুব দ্বারা পছন্দ করা প্রমাণীকরণ প্রক্রিয়া।

এখানে উল্লিখিত অন্যান্য উত্তরগুলি প্রযুক্তিগতভাবে কাজ করে তবে তারা সকলেই এসএসএসকে বাইপাস করে বলে মনে হচ্ছে আপনাকে ম্যানুয়ালি একটি পাসওয়ার্ড প্রবেশ করানো দরকার যা আপনি সম্ভবত চান না।


0

আপনি যদি http://github.com/my_user_name/my_repo যান তবে আপনি একটি পাঠ্যবক্স দেখতে পাবেন যেখানে আপনি আপনার সংগ্রহস্থলের গিট পথটি নির্বাচন করতে পারেন। আপনি এটি ব্যবহার করতে চাইবেন!


0

আমি আমার পাবিকে github.com এ যুক্ত করেছি এবং এটি সফল ছিল:

ssh -T git@github.com

তবে আমি ভুলভাবে এটি করার পরে "আপনি ধাক্কা দিতে পারবেন না" ত্রুটিটি পেয়েছি:

git clone git://github.com/mygithubacct/dotfiles.git
git remote add origin git@github.com:mygithubacct/dotfiles.git
...edit/add/commit
git push origin master

আমার যা করা উচিত তা করার পরিবর্তে:

mkdir dotfiles
cd dotfiles
git init
git remote add origin git@github.com:mygithubacct/dotfiles.git
git pull origin master
...edit/add/commit
git push origin master

0

httpsপরিবর্তে বিশ্বব্যাপী সেট করতে git://:

git config --global url.https://github.com/.insteadOf git://github.com/


-1

আপনি এটির দ্রুততমতমতম উপায়টি হ'ল এটি প্রদত্ত originপরামর্শের সাথে প্রতিস্থাপন করা।

পরিবর্তে git push origin master, ব্যবহার করুন:

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