বিদ্যমান ক্লোন থেকে কাঁটাচামচ হিসাবে গিথুব একটি সংগ্রহস্থল যুক্ত করছে


21

সুতরাং আমার কাছে একটি গিট সংগ্রহস্থল রয়েছে যা আমি ঘিথুবের একটি উজানের উত্স থেকে ক্লোন করেছি। আমি এতে কিছু পরিবর্তন করেছি (যা নিঃশর্ত এবং মাস্টার শাখায়)। আমি যা করতে চাই তা হল আমার পরিবর্তনগুলি একটি নতুন শাখা হিসাবে আমার গিথুব পৃষ্ঠায় ঠেলাতে এবং গিথুবকে এখনও এটি একটি কাঁটাচামচ হিসাবে দেখতে পাবে।

এটা কি সম্ভব? আমি গিট এবং গিথুবে মোটামুটি নতুন। আমার প্রশ্নটি কি কোনও অর্থবোধ করে?

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

ডিরেক্টরিগুলি অনুলিপি না করে এটি করার একটি সহজ উপায় আছে এটি কি সাধারণ ব্যবহারের ক্ষেত্রে?

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


আমার ধারণা, এটি প্রযুক্তিগত দিক থেকে, তবে এটি অন্য কোথাও ভাল হতে পারে, যেহেতু এটি বেশিরভাগই একটি
গিথাব

উত্তর:


22

আপনি এটি আপনার বিদ্যমান সংগ্রহশালা থেকে করতে পারেন (নতুন (স্থানীয়) ভাণ্ডারে কাঁটাচামচ ক্লোন করার দরকার নেই, আপনার শাখা তৈরি করা হবে, আপনার প্রতিশ্রুতি / পরিবর্তনগুলি অনুলিপি করা হবে))

  1. আপনার প্রতিশ্রুতি প্রকাশের জন্য প্রস্তুত হন।

    যে কোনও বিদ্যমান স্থানীয় কমিটগুলি (যেমন এবং git commit --amendএবং / অথবা সহ git rebase --interactive) পরিমার্জন করুন ।

    আপনার স্বাধীন পরিবর্তনের কোনো কমিট আপনি প্রকাশ করতে চান (আমি নিশ্চিত যদি আপনি পরোক্ষভাবে আপনার স্থানীয় কিছু বদ্ধ পরিকর যে বোঝানো নই মাস্টার এবং কিছু মুক্ত পরিবর্তন, বা শুধু কিছু মুক্ত পরিবর্তন; একটি উপর ঘটনাক্রমে, মুক্ত পরিবর্তন হয় না " শাখা ", তারা আপনার কার্যক্ষম গাছের সাথে কঠোরভাবে রয়েছে)।

    আপনার "নতুন শাখা" এর জন্য আপনি যে নামটি চান সেটি দেওয়ার জন্য আপনার মাস্টার শাখাটির নাম পরিবর্তন করুন। এটি কঠোরভাবে প্রয়োজনীয় নয় (আপনি কোনও শাখা থেকে অন্য কোনও শাখায় ঠেলাঠেলি করতে পারেন) তবে আপনার স্থানীয় শাখা এবং আপনার গিটহাবের কাঁটাচামচের শাখার একই নাম থাকলে এটি সম্ভবত দীর্ঘকালীন বিভ্রান্তি হ্রাস করবে।

    git branch -m master my-feature
    
  2. আপস্ট্রিম গিটহাব সংগ্রহস্থল
    (যেমন) github.com:UpstreamOwner/repostory_name.gitহিসাবে কাঁটাচামচ করুন
    (যেমন) github.com:YourUser/repository_name.git

    এটি গিটহাব ওয়েবসাইটে করা হয় (বা একটি "ক্লায়েন্ট" যা গিটহাব এপিআই ব্যবহার করে) সেখানে কোনও স্থানীয় গিট কমান্ড জড়িত নেই।

  3. আপনার স্থানীয় সংগ্রহস্থলটিতে (মূলত যেটি আপস্ট্রিম গিটহাব সংগ্রহস্থল থেকে ক্লোন করা হয়েছিল এবং এর মাস্টারটিতে আপনার পরিবর্তন রয়েছে ), আপনার কাঁটাচালিত সংগ্রহস্থলকে রিমোট হিসাবে যুক্ত করুন:

    git remote add -f github github.com:YourUser/repository_name.git
    
  4. গিটহাবের আপনার কাঁটাচালিত ভাণ্ডারে আপনার শাখাটি পুশ করুন।

    git push github my-feature
    
  5. Allyচ্ছিকভাবে, রিমোটগুলির নাম পরিবর্তন করুন যাতে আপনার কাঁটাচামচটি "উত্স" এবং প্রবাহটি "আপস্ট্রিম" হিসাবে পরিচিত।

    git remote rename origin upstream
    git remote rename github origin
    

    রিমোটগুলির নামকরণের একটি কারণ হ'ল কারণ আপনি git pushকোনও সংগ্রহস্থল নির্দিষ্ট না করেই এটি ব্যবহার করতে সক্ষম হতে চান (এটি "উত্স" -এর ডিফল্ট)।


নির্দোষভাবে কাজ করেছেন, তবে আপনি যখন গিথুব রিমোট তৈরি করেন তখন আমি মনে করি আপনি
গিথুব

1
@ জেসজিহির: এই পোস্টের "ইউআরএলগুলি" "স্ক্রিপ -জাতীয় সিনট্যাক্স" ব্যবহার করে যা এইচটিটিপি (এস) নয়, এসএসএইচ ব্যবহার করে। আপনাকে এইচটিটিপি (এস) ইউআরএল হিসাবে ব্যবহার করার জন্য কোলনকে একটি স্ল্যাশে পরিবর্তন করতে হবে (ধরে নিবেন যে সার্ভার উভয় অতিরিক্ত নামের স্থান পরিবর্তন ছাড়াই গিটারহাবের দ্বারা সমর্থন করে) supports
ক্রিস জনসেন

ওফস, আপনি ঠিক বলেছেন ক্রিস, আমি কোলানকে স্ল্যাশ হিসাবে ভুল টাইপ করেছি এবং এভাবে "https" যুক্ত না করা আমার পক্ষে কাজ করে না। গোলমাল জন্য দুঃখিত ...
jesjimher

পদক্ষেপ 4 এ, -uবিকল্প ব্যবহার করা আপনার স্থানীয় শাখাটিকে একই দূরবর্তী শাখাকে my-feature ট্র্যাক করতে পারে origin/my-feature। আদেশটি হ'ল:git push -u github my-feature
ইয়াওজি

দারুণ. আমার একমাত্র জিনিসটি ছিল গিথুব ঠিকানা!
টিকো

0

একটি সরঞ্জাম রয়েছে: hub

hubএকটি কমান্ড লাইন সরঞ্জাম যা gitঅতিরিক্ত বৈশিষ্ট্য এবং কমান্ডগুলি গিটহাবের সাথে কাজ করা সহজতর করে এটির সাথে প্রসারিত করার জন্য মোড়কে দেয়

এখন তুমি পার:

# cd to a cloned repo with uncommited changes
git checkout -b feature
git commit -am 'done with feature'
git fork
git push YOUR_USER feature
# git pull-request
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.