আসল রেপোর ক্লোন থেকে আমি কীভাবে আমার কাঁটাতে চাপ দিতে পারি?


123

আমি গিটহাবের myrepoঅন্য একটি সংগ্রহস্থলের কাঁটাচামড়া (এটি কল করি ) তৈরি করেছি let's orirepoপরে, আমি ক্লোন করেছি orirepo

git clone https://github.com/original/orirepo.git

আমি প্রায় 20 টি ফাইল সংশোধন করেছি, তারপরে আমি আমার পরিবর্তনটি সম্পাদন করেছি এবং একটি প্রতিশ্রুতিবদ্ধ করেছি

git add
git commit

তবে আমি যখন ধাক্কা দেওয়ার চেষ্টা করেছি

git push

আমি এই ত্রুটি পেয়েছি:

remote: Permission to original/orirepo.git denied to mylogin.
fatal: unable to access 'https://github.com/original/orirepo.git/': The requested URL returned error: 403

আমি জানি যে আমি একটি ভুল করেছি: আমার কাঁটাচামড়ার চেয়ে আমার আরও ক্লোন করা উচিত ছিল orirepo, তবে এখন এটির জন্য খুব দেরি হয়ে গেছে। আমার origin/orirepoলেখার অ্যাক্সেস নেই, তার চেয়ে আমি কীভাবে আমার কাঁটাতে চাপ দিতে পারি ?

উত্তর:


187

ডিফল্টরূপে, যখন আপনি কোনও সংগ্রহস্থল ক্লোন করেন

  • যে এখানে থাকে https://github.com/original/orirepo.git,
  • যার বর্তমান শাখা বলা হয় master,

তারপর

  • ফলস্বরূপ ক্লোনটির স্থানীয় কনফিগারেশন কেবলমাত্র একটি রিমোট নামক তালিকাবদ্ধ করে origin, যা আপনি ক্লোন করেছেন এমন সংগ্রহস্থলের URL এর সাথে সম্পর্কিত;
  • masterআপনার ক্লোনটির স্থানীয় শাখাটি ট্র্যাক করার জন্য সেট করা আছে origin/master

অতএব, আপনি যদি আপনার ক্লোনটির কনফিগারেশন পরিবর্তন না করেন, গিট ব্যাখ্যা করে

git push

যেমন

git push origin master:origin/master

অন্য কথায়, git pushআপনার স্থানীয় masterশাখাটিকে সেই masterশাখায় ঠেলে দেওয়ার চেষ্টা করুন যা দূরবর্তী সংগ্রহস্থলে (আপনার ক্লোন হিসাবে পরিচিত origin) থাকে। তবে, আপনাকে এটি করার অনুমতি দেওয়া হচ্ছে না কারণ আপনার কাছে সেই দূরবর্তী সংগ্রহস্থলের লেখার অ্যাক্সেস নেই।

তোমার দরকার

  1. হয় originআপনার কাঁটাচামড়ার সাথে যুক্ত হতে রিমোটটিকে নতুন করে সংজ্ঞায়িত করে চলুন

    git remote set-url origin https://github.com/RemiB/myrepo.git
    
  2. অথবা, আপনি যদি originরিমোটের মূল সংজ্ঞাটি সংরক্ষণ করতে চান তবে myrepoআপনার কাঁটাচামড়ার সাথে সম্পর্কিত একটি নতুন রিমোট (যাকে বলা হয়) এখানে সংজ্ঞা দিন :

    git remote add myrepo https://github.com/RemiB/myrepo.git
    

    তারপরে আপনি masterচালিয়ে আপনার কাঁটাতে আপনার স্থানীয় শাখাটি ঠেলাতে সক্ষম হবেন

    git push myrepo master
    

    এবং আপনি যদি গিটকে বলতে চান যা এখন থেকে পরিবর্তে git pushচাপ দেওয়া উচিত, আপনার চালানো উচিতmyrepoorigin

    git push -u myrepo master
    

পরিবর্তে.


´git push -u´ এছাড়াও itgit pull of এর ডিফল্ট আচরণ পরিবর্তন করবে?
বেনরোথ

1
হ্যাঁ এটি হবে, সুতরাং "পুশ-ইউ" না করার পরিবর্তে আপনার পুশডেফল্ট বিকল্পটি ব্যবহার করা উচিত: গিট কনফিগারেশন --add.origin.pushdefault myrepo এবং এটি কেবল পুশিংকেই প্রভাবিত করবে এবং বিদ্যমান সমস্ত নতুন শাখায় এটি প্রযোজ্য।
মারিয়াস কে

1
কি git remote set-url origin http://github.com/myname/reponameএবং তারপর git push origin mybranch। কাজ করছে! ধন্যবাদ!
বিকাশকারী মারিয়াস Žilėnas

1
যদি অ্যাড রিমোট ব্যবহার করা হয় তবে এটি কীভাবে টানকে প্রভাবিত করবে? এটি কোথা থেকে টানতে পারে? এটি কীভাবে 2 টি পোস্টোর মধ্যে ভবিষ্যতের মার্জিং পরিচালনা করবে?
কোক হাও তেহ

1
@ কোকহটিহ আরও একটি রিমোট যুক্ত করা কোন স্থানীয় শাখা ট্র্যাক করে কোন দূরবর্তী শাখা (যদি থাকে) তেমন প্রভাব ফেলবে না। তবে git push -u myrepo masterআপনার স্থানীয় মাস্টারটিকে ট্র্যাকিং শুরু করে myrepo/master। যদি, এর পরে, আপনি git pullমাস্টার থাকাকালীন ছুটে যান, আপনি এখান থেকে টানবেন myrepo, এবং আর পাবেন না origin
jub0bs

18

সুতরাং, আপনি ক্লোন করেছেন কারও রেপো পরিবর্তন করেছে এবং তারপরে আপনি বুঝতে পেরেছেন যে আপনি সেই রেপোতে চাপ দিতে পারবেন না, তবে আপনি নিজের কাঁটাতে চাপ দিতে পারেন। সুতরাং, আপনি এগিয়ে গিয়েছেন এবং মূল রেপো কাঁটাচামচ করেছেন।

আপনাকে যা করতে হবে তা হ'ল আপনার স্থানীয় ক্লোনটিতে আপনার কাঁটাযুক্ত রেপির URL সহ URL টি অদলবদল করতে হবে।

এটা এভাবে করো

git remote set-url origin https://github.com/fork/name.git

https://github.com/fork/name.gitআসল রেপো থেকে আপনার কাঁটাচলার URL কোথায় ।

তার পরে, ঠিক

git push

এবং আপনি নিজের পরিবর্তনগুলিকে আপনার কাঁটাচায় চাপতে সক্ষম হবেন :)


একটি মোহন মত কাজ, ধন্যবাদ!
রাফায়েল রুয়েলস

7

ঠিক আছে আমি শেষ পর্যন্ত আমার গিট কনফিগারেশন ফাইলটি সম্পাদনা করেছি:

$ nano .git/config

পরিবর্তন:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = https://github.com/<origin-project>/<origin-repo>.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

প্রতি

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = https://github.com/<mylogin>/<myrepo>.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

তারপর,

$ git push

কবজির মতো কাজ করেছেন।

অথবা, থিয়াগো এফ ম্যাসিডো উত্তরের জন্য ধন্যবাদ :

git remote set-url origin https://yourusername@github.com/user/repo.git

-5

আপনার অ্যাকাউন্টে প্রথমে কাঁটাযুক্ত রেপো ক্লোন করা উচিত।

git clone https://github.com/your_account/repo.git

আপনার কাছে এই রেপোতে চাপ দেওয়ার অনুমতি রয়েছে। আপনি যদি নিজের কোডটি মূল রেপোতে ঠেলাতে চান তবে আপনি একটি টানতে অনুরোধ করতে পারেন।


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