স্থানীয় গিট শাখাটি কীভাবে একটি দূরবর্তী রেপোতে অনুলিপি করবেন


127

আমি এখন পর্যন্ত নিম্নলিখিত পদক্ষেপগুলি নিয়েছি:

  1. একটি দূরবর্তী গিট রেপো ক্লোন করেছে
  2. পরীক্ষামূলকভাবে মাস্টার শাখাটি ব্রাঞ্চ করা
  3. পরীক্ষামূলক শাখায় সম্পাদিত / পরীক্ষিত / প্রতিশ্রুতিবদ্ধ কোড

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

দূরবর্তী রেপোর মাস্টার শাখাকে প্রভাবিত না করে আমি কীভাবে আমার স্থানীয় শাখাটি দূরবর্তী রেপোতে ভাগ করব?


এই দিকটি এই লিঙ্কটি খুব দরকারী। গিট শাখাগুলি ভাগ করে নিচ্ছেন
বিষ্ণু কুমার

উত্তর:


157

গিট পুশ ম্যানুয়াল পৃষ্ঠা অনুসারে :

 git push origin experimental

experimentalউত্স সংগ্রহস্থলে মেলে এমন একটি রেফ খুঁজুন (সম্ভবত এটি এটি খুঁজে পেতে পারে refs/heads/experimental) এবং এটির সাথে একই refs/heads/experimentalসংগ্রহস্থল (উদাঃ ) আপডেট করুন ।
যদি experimentalদূর থেকে উপস্থিত না থাকে তবে এটি তৈরি করা হবে

এটি একই হিসাবে:

git push origin experimental:refs/heads/experimental

experimentalবর্তমান experimentalশাখাটি অনুলিপি করে মূল সংগ্রহস্থলে শাখা তৈরি করুন । স্থানীয় নাম এবং দূরবর্তী নাম পৃথক হলে
এই ফর্মটি কেবল দূরবর্তী সংগ্রহস্থলে নতুন শাখা বা ট্যাগ তৈরি করার জন্য প্রয়োজন ; অন্যথায়, নিজের নামে রেফ নামটি কাজ করবে।

বা, যেমন গিট টিপতে উল্লিখিত , আপনি একটি "ব্রাঞ্চের ডিফল্ট রিমোট" সেটআপ করতে পারেন:

আপনি প্রদত্ত শাখায় একটি ডিফল্ট রিমোট নির্ধারণ করতে গিট কনফিগারেশন ব্যবহার করতে পারেন। অন্যথায় সুনির্দিষ্ট না করা থাকলে এই শাখাটি পুশ করতে এই ডিফল্ট রিমোট ব্যবহার করা হবে।

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

git config branch.<name>.remote <remote> 

এটি ম্যানুয়ালি নির্দিষ্ট করতে ব্যবহার করা যেতে পারে।


জানুয়ারী (জন্য প্রস্তাব দেওয়া Git> = 1.7.0 ) push -u(অথবা push --set-upstream) বিকল্প:

আপ টু ডেট বা সফলভাবে ঠেলে দেওয়া প্রতিটি শাখার জন্য আপগ্রেম (ট্র্যাকিং) রেফারেন্স যুক্ত করুন, যুক্তি-কম গিট-পুল (1) এবং অন্যান্য কমান্ড দ্বারা ব্যবহৃত।

এইভাবে, আপনাকে কোনও গিট কনফিগার করতে হবে না।

git push -u origin experimental

12
আপনার স্থানীয় শাখাটি জনসাধারণের পরে রিমোটটিকে ট্র্যাক করে তা নিশ্চিত করার জন্য আপনার -uবিকল্পটি ব্যবহার করা উচিত push। আপনি যদি -uবিকল্পটি ব্যবহার করতে ভুলে যান তবে আপনি কেবল git push -uপরে শাখায় টাইপ করতে পারেন , তারপরে git pullকাজ করবে।
জানুয়ারী

আমি চিহ্নিত করেছি যে আপনি যখন এটি করেন git push origin experimental, কোনও প্যাক আপলোড হওয়ার কোনও প্রমাণ নেই। দেখে মনে হচ্ছে দূরবর্তীটিতে ইতিমধ্যে আপনার পূর্ববর্তী ধাক্কা থেকে সমস্ত উপাদান রয়েছে; এটিকে কেবল রেফের সাথে যুক্ত করতে হবে
কাজ

@ কাজ: যদি নতুন কমিটগুলি ইতিমধ্যে দূরবর্তী অন্য শাখায় ঠেলাঠেলি করা হত তবে এতে সমস্ত উপাদান থাকবে। সেক্ষেত্রে, git push origin experimentalশুধু শাখা তৈরি করবে experimentalরিমোটের।
ভনসি

ধন্যবাদ! আপনার উত্তরটি খুব সহায়ক ছিল।
hakre

15

যদি আপনার শাখার experimentalনাম হয় এবং দূরবর্তীটির নাম হয় originতবে তা

git push origin experimental

উপরের মত একই মন্তব্য, কিন্তু এটি দূরবর্তী রেপোতে অন্তর্নিহিতভাবে পরীক্ষামূলক শাখা তৈরি করে, বা এটি দূরবর্তী মাস্টারের দিকে চাপ দেবে?
Coocoo4Cocoa

1
এটি পরীক্ষামূলক শাখাকে ঠেলে দেয় এবং স্থানীয় দিকে বা দূরবর্তী স্থানের উপর কোনও মাস্টার স্পর্শ করে না
জন ডাউটহাট

1

git push -u <remote-name> <branch-name>নতুন তৈরি শাখাটি একই রেপো থেকে তৈরি না হলে কাজ করে না, অর্থাত আপনি যদি নতুন শাখাটি ব্যবহার করে তৈরি না করে থাকেন git checkout -b new_branchতবে এটি কাজ করবে না।

উদাহরণস্বরূপ, আমি স্থানীয়ভাবে দুটি পৃথক ভাণ্ডার ক্লোন করেছি এবং আমাকে রেপো 2 / ব্রাঞ্চ 1 কে রেপো 1 / এ অনুলিপি করতে হয়েছিল এবং তারপরে এটিও চাপ দিতে হবে।

এই লিঙ্কটি আমাকে আমার স্থানীয় শাখা (অন্য রেপো থেকে ক্লোন করা) আমার দূরবর্তী রেপোতে ঠেলাতে সহায়তা করেছে:


0

গিথুব রিমোট ম্যানেজমেন্টের জন্য অনুমোদিত গিথুব পৃষ্ঠা এখানে রয়েছে http://github.com/guides/push-a-branch-to-github । এটি আপনাকে আপনার সমস্ত প্রশ্নের উত্তর দিতে সহায়তা করবে।


এটি কি এটিকে মাস্টার শাখায় স্থানান্তরিত করে না, বা এটি স্পষ্টতই একটি উত্স / একই_ ব্র্যাঞ্চ_নাম_াস_ লোকাল তৈরি করবে?
Coocoo4Cocoa

0

TL; ড

$ git push --set-upstream origin your_new_branch

অধিক তথ্য

আপনি কিছু কমিট করার পরে আপনার:

$ git checkout -b your_new_branch
$ git add file
$ git commit -m "changed file"

আপনি নীচে যেমন রিমোট রিপোজিটরিগুলির একটিতে একটি প্রবাহকে নির্দিষ্ট করে আপনার শাখাটিকে চাপ দিন:

$ git push --set-upstream REMOTE YOUR_BRANCH

রিমোটগুলি দেখা যায়

$ git remote -v

সাধারণত, আপনার একক ডিফল্ট দূরবর্তী থাকবে origin। সুতরাং আপনি আদেশ হ'ল:

$ git push --set-upstream origin your_new_branch

এবং ফলস্বরূপ সমস্ত ধাক্কা কেবলমাত্র তৈরি করা যায় git push

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