অন্য একটি শাখা থেকে গিতে একটি শাখা তৈরি করুন


988

আমার দুটি শাখা আছে: মাস্টার এবং দেব

আমি দেব শাখা থেকে একটি "বৈশিষ্ট্য শাখা" তৈরি করতে চাই ।

বর্তমানে শাখা দেব এ, আমি করি:

$ git checkout -b myfeature dev

... (কিছু কাজ)

$ git commit -am "blablabla"
$ git push origin myfeature

তবে, আমার শাখাটি দেখার পরে আমি পেয়েছি:

--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**

আমি বলতে চাইছি যে শাখাটি ff একত্রিত হয়েছে, এবং আমি বুঝতে পারি না কেন ...

আমি কি ভুল করছি?

আপনি কীভাবে আমাকে অন্য শাখা থেকে শাখা বন্ধ করে ফিচার শাখার জন্য রিমোট রিপোজিটরিতে ফিরে যেতে পারেন দয়া করে আমাকে ব্যাখ্যা করতে পারেন?

এখানে বর্ণিত মত একটি ব্রাঞ্চিং মডেল সমস্ত ।

উত্তর:


1429

আপনি যে লিঙ্কটি পোস্ট করেছেন তাতে পদ্ধতিটি যদি পছন্দ করেন তবে গিট ফ্লোতে একবার দেখুন ।

এটি সেই কর্মপ্রবাহের জন্য তিনি তৈরি স্ক্রিপ্টগুলির একটি সেট।

কিন্তু আপনার প্রশ্নের উত্তর দিতে:

$ git checkout -b myFeature dev

ডেভ থেকে মাইফাইচার শাখা তৈরি করে। আপনার কাজ এবং তারপর

$ git commit -am "Your message"

দ্রুত পরিবর্তন না করে আপনার পরিবর্তনগুলিকে দেবের সাথে একীভূত করুন

$ git checkout dev
$ git merge --no-ff myFeature

এখন সার্ভারে পরিবর্তনগুলি চাপুন

$ git push origin dev
$ git push origin myFeature

আপনি এটি কীভাবে চান তা এটি দেখতে পাবেন।


32
myFeatureএটি বুদ্ধি সংহত হওয়ার পরে ধাক্কা দেওয়ার গুরুত্ব কী dev?
আলেকজান্ডার সুর্যাপেল

3
@ স্পার্টাকাস যদি myFeatureশাখাটি মার্জ করার আগে সার্ভারে ঠেলাঠেলি করা হত, তবে কিছুই নয়। তবে যদি myFeatureএখনও সার্ভারে ধাক্কা না পাওয়া যায় এবং আপনি এটি সার্ভারে প্রদর্শিত হতে চান তবে আপনাকে অবশ্যই এটিটিকে পুশ করতে হবে।
xOneca

13
হয় git checkout -b myFeature devএই 3 কমান্ড হিসাবে একই: git checkout devতারপর, git branch myFeature, এবং তারপর git checkout myFeature?
কেভিন মেরেডিথ

3
এটা হয়, বা এটি হওয়া উচিত। আপনি কি অন্য কিছু দেখতে পাচ্ছেন?
আবিজার্ন

33
অন্যান্য newbies জন্য নির্মল করার জন্য, এই একটি কি --no-ffএকত্রীকরণ মত দেখায়
A__

406

আপনি যদি গিতে বিদ্যমান যে কোনও শাখা থেকে একটি নতুন শাখা তৈরি করতে চান তবে কেবলমাত্র বিকল্পগুলি অনুসরণ করুন।

আপনি যে শাখায় একটি নতুন শাখা তৈরি করতে চান সেখান থেকে প্রথমে সেই শাখায় পরিবর্তন / চেকআউট করুন। উদাহরণস্বরূপ, আপনার যদি নীচের শাখাগুলি পছন্দ করে:

  • মনিব
  • দেব
  • branch1

সুতরাং আপনি নামের একটি নতুন শাখা তৈরি করতে হলে "subbranch_of_b1" নামে শাখা অধীনে "branch1" পদক্ষেপগুলি অনুসরণ করুন:

  1. চেকআউট বা "শাখা 1" এ পরিবর্তন করুন

    git checkout branch1
    
  2. এখন আপনার নতুন শাখা "সাবব্রান্স_ও_বি 1" নামে তৈরি করুননীচের কমান্ডটি ব্যবহার করে অধীনে "সাবব্রান্স_ওফ_বি 1" তৈরি করুন।

    git checkout -b subbranch_of_b1 branch1
    

    উপরের শাখার অধীনে সাবব্র্যাঞ্চ_ওফ_বি 1 নামে একটি নতুন শাখা তৈরি করবে branch1 (নোট যে branch1উপরোক্ত কমান্ডের বাধ্যতামূলক যেহেতু মস্তক বর্তমানে এটি নির্দেশ করা হয় না, আপনি যা করতে পারেন সুনির্দিষ্ট যদি আপনি একটি ভিন্ন শাখা যদিও হয়)।

  3. এখন সাবব্রান্স_এফ_বি 1 এর সাথে কাজ করার পরে আপনি এটিকে স্থানীয়ভাবে বা দূরবর্তীভাবে কমিট করতে এবং চাপ দিতে বা একীভূত করতে পারেন।

অন্য একটি শাখার অধীনে শাখা তৈরির নমুনা গ্রাফিকাল চিত্রণ

subbranch_of_b1 টি রিমোটে চাপ দিন

 git push origin subbranch_of_b1 

7
কীভাবে সাব্র্যাঞ্চ_ফ_বি 1 টি রিমোটে ঠেলাবেন ??
ব্যবহারকারী269867

13
@ ব্যবহারকারী269867: "গিট পুশ অরিজিন সাব্র্যাঞ্চ_ফ_বি 1" আপনার জন্য এই কাজটি করবে।
প্রবীণ জর্জ

4
এখন, আমি যদি মাস্টারগুলিতে পরিবর্তনগুলি চাপি, তবে এটি স্বয়ংক্রিয়ভাবে শাখা 1 এ আসবে?
মাস্টার ইয়োদা

2
নোট করুন যে উপরের কমান্ডের শাখা 1 বাধ্যতামূলক নয় যেহেতু হেড বর্তমানে এটি দেখিয়েছে, আপনি যদি অন্য কোনও শাখায় থাকেন তবে আপনি এটি সুনির্দিষ্ট করতে পারেন যদিও আমি যা খুঁজছিলাম
ফিলিপসমার্টিনস

10
আমি এখানে এসে ভাবছিলাম git checkout -b some-branchশর্টহ্যান্ড কিনা git checkout -b some-branch master? এটা পরিনত হয় যে git checkout -b some-branchজন্য সাধারণভাবে সংক্ষেপেgit checkout -b some-branch <current_active_branch>
ফ্রাঙ্ক Henard

45

একটি শাখা তৈরি করুন

  • মাস্টার শাখা চেক আউট হয়ে গেলে শাখা তৈরি করুন। এখানে মাস্টার কমিটগুলি আপনার তৈরি করা শাখায় সিঙ্ক করা হবে।

    $ git branch branch1

  • যখন শাখা 1 পরীক্ষা করা হবে তখন শাখা তৈরি করুন। এখানে শাখা 1 এ করা কমিটগুলি শাখার সাথে সিঙ্ক করা হবে

    $ git branch branch2


একটি শাখা চেকআউট করুন

গিট চেকআউট কমান্ড শাখাগুলি স্যুইচ করে বা কার্যকারী ট্রি ফাইলগুলি পুনরুদ্ধার করে

  • $ git checkout branchname

একটি শাখা নামকরণ

  • $ git branch -m branch1 newbranchname

একটি শাখা মুছুন

  • $ git branch -d branch-to-delete
  • $ git branch -D branch-to-delete ( একীভূত স্থিতি পরীক্ষা না করে মুছে ফেলার জন্য চাপ দিন )

শাখা তৈরি এবং স্যুইচ করুন

  • $ git checkout -b branchname

সম্পূর্ণ শাখাগুলি অন্তর্ভুক্ত

  • $ git branch --merged


************************** শাখার পার্থক্য [গিট ডিফ শাখা 1 .. ব্রাঞ্চ 2] ************** **********

বহু লাইন পার্থক্য
  • $ git diff master..branch1
একক লাইন পার্থক্য
  • $ git diff --color-words branch1..branch2

1
এছাড়াও শাখার নাম পরিবর্তনের পরে git push origin :old-name new-nameপুরানো নামের দূরবর্তী শাখাটি মুছতে এবং নতুন নাম স্থানীয় শাখাটি চাপতে ব্যবহার করুন।
95faf8e76605e973

13

উপর একযোগে কাজ করুন devশাখায় । যা ঘটে তা হ'ল আপনার দৃশ্যে বৈশিষ্ট্য শাখাটি দেব শাখার ডগা থেকে এগিয়ে যায় তবে দেব শাখাটি পরিবর্তন হয় না। একটি সরল রেখা হিসাবে আঁকা এটি আরও সহজ, কারণ এটি ফরোয়ার্ড গতি হিসাবে ভাবা যেতে পারে। আপনি এটিকে দেবের দিকে নির্দেশ করেছেন এবং সেখান থেকে আপনি কেবল সমান্তরাল পথে চালিয়ে গেছেন। দুটি শাখা সত্যিই অন্যদিকে সরেনি।

এখন, আপনি যদি মার্জ করার আগে দেবের প্রতিশ্রুতিবদ্ধ হন, আপনি আবার একই প্রতিশ্রুতি দিয়ে শুরু করবেন, এ, তবে এখন বৈশিষ্ট্যগুলি সি এবং ডি বিতে চলে যাবে এটি শাখা হিসাবে আপনি যে বিভক্তিকে কল্পনা করার চেষ্টা করছেন তা প্রদর্শন করবে এখন ডাইভার্জ হয়েছে।

*-----*Dev-------*Feature

বনাম

       /----*DevB
*-----*DevA
       \----*FeatureC

9

গিট 2.23 এর দায়িত্বগুলি বিভক্ত করার জন্য git switchএবং পরিচয় করিয়ে git restoreদেওয়ার জন্যgit checkout

2.23 গিট হিসাবে বিদ্যমান শাখা থেকে একটি নতুন শাখা তৈরি করা:

git switch -c my-new-branch

একটি নতুন শাখা 'আমার নতুন-শাখা' এ স্যুইচ করা হয়েছে

  • -c --create এর জন্য সংক্ষিপ্ত এবং সুপরিচিত গিট চেকআউট - বি প্রতিস্থাপন করে

আরও বিস্তারিতভাবে পরিবর্তনগুলি ব্যাখ্যা করে এই গিথুব ব্লগ পোস্টটি একবার দেখুন :

গিট ২.২৩ বিদ্যমান বিদ্যমান স্যুটগুলিতে পরীক্ষামূলক কমান্ডগুলির একটি নতুন জুড়ি এনেছে: গিট সুইচ এবং গিট পুনরুদ্ধার । এই দুটি হ'ল শেষ পর্যন্ত সুপরিচিত গিট চেকআউটটির জন্য আরও ভাল ইন্টারফেস সরবরাহ করার জন্য। নতুন কমান্ডগুলির প্রত্যেকটির স্পষ্ট বিচ্ছেদ রয়েছে এবং গিট চেকআউটের কতগুলি দায়িত্ব রয়েছে তা খুব সুন্দরভাবে ভাগ করে নেওয়া হচ্ছে


9

আপনার স্থানীয় ডিরেক্টরিতে অন্য একটি শাখা থেকে একটি শাখা তৈরি করতে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন।

git checkout -b <sub-branch> branch

উদাহরণ স্বরূপ:

  • 'এক্সওয়াইজেড' তৈরি করা নতুন শাখার নাম
  • এবিসি শাখার নাম যার অধীনে এক্সওয়াইজেড তৈরি করতে হবে
git checkout -b XYZ ABC

3

আপনি যদি অন্য কোনও শাখা থেকে শাখা তৈরি করতে চান তবে নীচের পদক্ষেপগুলি অনুসরণ করুন:

অনুমান :

  1. আপনি বর্তমানে মাস্টার শাখায় রয়েছেন।
  2. প্রতিশ্রুতিবদ্ধ করার জন্য আপনার কোনও পরিবর্তন নেই। (যদি আপনার কোন পরিবর্তন করতে থাকে তবে তা স্ট্যাশ করুন!)।
  3. BranchExistingশাখার নাম যা থেকে আপনাকে নাম সহ একটি নতুন শাখা তৈরি করতে হবে BranchMyNew

পদক্ষেপ :

  1. আপনার স্থানীয় মেশিনে শাখাটি আনুন।

    $ git fetch origin BranchExisting : BranchExisting
    

এই কমান্ডটি একই স্থানীয় শাখার নামের সাথে আপনার স্থানীয় একটি নতুন শাখা তৈরি করবে।

  1. এখন, মাস্টার ব্রাঞ্চ চেকআউট থেকে সদ্য তোলা শাখায়

    $ git checkout BranchExisting
    
  2. আপনি এখন ব্রাঞ্চএক্সেটিং-এ রয়েছেন। এখন এই বিদ্যমান শাখা থেকে একটি নতুন শাখা তৈরি করুন।

    $ git checkout -b BranchMyNew
    

এই যে!


1

অন্য একটি থেকে একটি শাখা তৈরির জন্য এই সিনট্যাক্সটি ব্যবহার করতে পারেন:

git push origin refs/heads/<sourceBranch>:refs/heads/<targetBranch>

এটি "গিট চেকআউট-বি" + "গিট পুশ অরিজিন" এর চেয়ে কিছুটা ছোট

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