গিটের একটি শাখার চেয়ে ট্যাগ কীভাবে আলাদা? আমার এখানে কোনটি ব্যবহার করা উচিত?


615

আমি কিভাবে ব্যবহার করতে বুঝতে কিছু অসুবিধা হচ্ছে না ট্যাগ বনাম শাখা মধ্যে

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


4
যেহেতু গিট ট্যাগ কীভাবে ব্যবহার করতে হয় তার জন্য ওয়েব অনুসন্ধান আমাকে প্রথমে সেই লিঙ্কটিতে নিয়ে এসেছিল, তাই আমি যুক্ত করছি যে এখানে একটি ট্যাগ সম্পর্কে আরও ভাল (আইএমএইচও) উত্তর রয়েছে: stackoverflow.com/questions/35979642/…
আলেক্সি মার্টিয়ানভ

উত্তর:


519

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

সাধারণত আপনি একটি নির্দিষ্ট সংস্করণ ট্যাগ করবেন যাতে আপনি এটি পুনরায় তৈরি করতে পারেন, উদাহরণস্বরূপ, এটি XYZ কর্পকে প্রেরণ করা সংস্করণ । একটি শাখাকোডটির নির্দিষ্ট সংস্করণে এটি চালিয়ে যাওয়া অব্যাহত রেখে চলমান আপডেট সরবরাহ করার কৌশলটি আরও বেশি। আপনি বিতরণ সংস্করণটির একটি শাখা তৈরি করবেন, মূল লাইনে বিকাশ চালিয়ে যাবেন, তবে বিতরণ করা সংস্করণটি উপস্থাপনকারী শাখায় বাগ ফিক্সগুলি তৈরি করবেন। শেষ পর্যন্ত, আপনি এই বাগ বাগগুলি আবার মূল লাইনে মার্জ করবেন। প্রায়শই আপনি একসাথে ব্রাঞ্চিং এবং ট্যাগিং উভয়ই ব্যবহার করবেন। আপনার কাছে বিভিন্ন ট্যাগ থাকবে যা মূল লাইন এবং এর শাখাগুলির জন্য নির্দিষ্ট সংস্করণগুলি (উদাহরণস্বরূপ গ্রাহকদের কাছে সরবরাহ করা হয়েছে) চিহ্নিত করতে পারে এমন প্রতিটি শাখায় যেগুলি আপনি পুনরায় তৈরি করতে চান - ডেলিভারি, বাগ সনাক্তকরণ ইত্যাদির জন্য প্রয়োগ করতে পারে both

এটি আসলে এর চেয়ে আরও জটিল - বা আপনি এটি তৈরি করতে চান তেমন জটিল - তবে এই উদাহরণগুলি আপনাকে পার্থক্য সম্পর্কে ধারণা দেবে।


40
তার ক্ষেত্রে তিনি শাখা ব্যবহার করতে চান, সম্ভবত আপনার উত্তরে এটিও লক্ষ্য করা উচিত;)
নিটল

13
আফাইক, ট্যাগগুলি প্রতিটি শাখায় অনন্য নয়। সুতরাং আলাদা আলাদা শাখায় বিভিন্ন কমিটের জন্য আপনি একই নাম দিতে পারবেন না।
আমার

5
@MY অবশ্যই কোনও খারাপ জিনিস নয়, আইএমএইচও। বিশেষ করে টভানফসন দ্বারা বর্ণিত পদ্ধতিতে, বিভিন্ন শাখায় একই নামে একাধিক ট্যাগ রাখা বজায় রাখা কঠিন হয়ে উঠতে পারে। উদাহরণটি দেওয়া হল, আমি ভাবি যে আপনি যদি বিভিন্ন শাখা জুড়ে একই নামের সাথে ট্যাগগুলি রাখতে পারেন তবে এটি দ্রুত একটি খারাপ অভ্যাস হিসাবে প্রতিষ্ঠিত হবে। যদিও আপনি পারবেন না তা জেনে রাখা ভাল। ধন্যবাদ আমার!
সুইভেল

28
একটি ট্যাগ একটি প্রতিশ্রুতিবদ্ধ হ্যাশের জন্য কেবলমাত্র একটি নাম alias আপনি যেমন প্রতিশ্রুতি চেকআউট করতে পারেন তেমনই git checkout 88c9f229fকিছু করতে পারেন git checkout your_tagএবং আপনি যে প্রতিশ্রুতি ট্যাগ দ্বারা প্রযোজ্য তা চেকআউট করবেন।
jterm

6
@ জেটেরম, শাখাগুলিও কি ডাকনীয় নয়? পার্থক্যটি হ'ল একটি শাখা-উরফ স্বয়ংক্রিয়ভাবে নিজেকে চেইনের সাম্প্রতিকতম প্রতিশ্রুতিতে প্রতিস্থাপন করে।
ভিক্টর মলোকোস্টভ

529

তাত্ত্বিক দৃষ্টিকোণ থেকে :

  • ট্যাগগুলি প্রদত্ত সংশোধনের জন্য প্রতীকী নাম । তারা সর্বদা একই বস্তুর দিকে নির্দেশ করে (সাধারণত: একই সংশোধনীতে); তারা পরিবর্তন করে না।
  • শাখাগুলি বিকাশের লাইনের প্রতীকী নাম । শাখার উপরে নতুন কমিট তৈরি করা হয়। শাখার পয়েন্টারটি স্বাভাবিকভাবেই অগ্রসর হয় এবং আরও নতুন ও কমিটিকে নির্দেশ করে।

প্রযুক্তিগত দৃষ্টিকোণ থেকে :

  • ট্যাগ রক্ষিত refs/tags/নামস্থান, এবং নির্দেশ করতে পারেন ট্যাগ বস্তু (সটীক এবং ঐচ্ছিকরূপে দ্বারা GPG ট্যাগ স্বাক্ষরিত) অথবা সরাসরি বস্তুর কমিট (স্থানীয় নাম জন্য কম ব্যবহৃত লাইটওয়েট ট্যাগ), অথবা এমনকি খুব বিরল ক্ষেত্রে গাছ বস্তুর বা ব্লব বস্তুর (যেমন GPG স্বাক্ষর )।
  • শাখা রক্ষিত refs/heads/নামস্থান, এবং শুধুমাত্র নির্দেশ করতে পারেন বস্তু কমিটHEADপয়েন্টার একটি শাখা (প্রতীকী রেফারেন্স) অথবা সরাসরি একটি কমিট (বিচ্ছিন্ন মাথা বা নামহীন শাখা) এর পড়ুন উচিত নয়।
  • দূরবর্তী-ট্র্যাকিং শাখা রক্ষিত refs/remotes/<remote>/নামস্থান, এবং দূরবর্তী সংগ্রহস্থলের মধ্যে সাধারণ শাখা অনুসরণ <remote>

গিটগ্লোসারি ম্যানপেজটিও দেখুন :

শাখা

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

ট্যাগ

একটি রেফ একটি ট্যাগ বা প্রতিশ্রুতিবদ্ধ অবজেক্টের দিকে নির্দেশ করছে। একটি মাথা বিপরীতে, একটি ট্যাগ প্রতিশ্রুতি দ্বারা পরিবর্তন করা হয় না। ট্যাগগুলি (ট্যাগ অবজেক্ট নয়) এতে জমা থাকে $GIT_DIR/refs/tags/। [...]। কমিট পূর্বসূত্র শৃঙ্খলে একটি নির্দিষ্ট পয়েন্ট চিহ্নিত করতে সাধারণত একটি ট্যাগ ব্যবহৃত হয়।

ট্যাগ অবজেক্ট

একটি রেফ থাকে এমন একটি বস্তু যা অন্য কোনও অবজেক্টের দিকে নির্দেশ করে, এতে কমিট অবজেক্টের মতো একটি বার্তা থাকতে পারে। এটিতে (পিজিপি) স্বাক্ষরও থাকতে পারে, এক্ষেত্রে এটিকে "স্বাক্ষরিত ট্যাগ অবজেক্ট" বলা হয়।


36
প্রশ্ন: আপনি যদি কোনও শাখাকে ট্যাগের মতো আচরণ করেন (এটি আপনি এটি তৈরি করেন, তবে এটি কখনই আপডেট করবেন না), কোনও বাস্তব পার্থক্য আছে কি?
স্টিভ বেনেট

30
পুনঃটুইট বিভিন্ন তথ্য রয়েছে (আপনি একটি ট্যাগ সাইন করতে পারেন, আপনি একটি শাখায় একটি বিবরণ যুক্ত করতে পারেন)। আপনি একটি শাখা স্থানান্তর করতে পারেন (সুতরাং আপনি এটি কখনও আপডেট না করলেও আপনি এখনও এটি পুনরায় শোধ করতে পারেন))। আপনি কোনও ট্যাগ সরাতে পারবেন না (এটি একটি নির্দিষ্ট কমিটের সাথে যুক্ত)। আপনি একটি শাখা ঠেলা চয়ন করতে পারেন। ট্যাগগুলি ডিফল্টরূপে ধাক্কা দেয় না। আপনার কখনই অপরের জন্য ব্যবহার করা উচিত নয় (যদি আপনি সত্যিই এসভিএন মানসিকতায় না থাকেন, তবে যদি আপনি গিটার সাথে যেতে চান তবে আপনাকে সেই দ্রুত "আন-লার্নিং" করতে হবে)।
ভনসি

19
@ স্টিভবেনেট: গিট কীভাবে শাখাগুলি আচরণ করে বনাম এটি কীভাবে আচরণ করে তার মধ্যে একটি পার্থক্য রয়েছে। ভনসি যা বলেছে তা ছাড়াও আপনি ভুলক্রমে ট্যাগটি অগ্রিম করতে পারবেন না: " git checkout <tag>" বেনামে নামবিহীন শাখা তৈরি করবে (তথাকথিত 'বিচ্ছিন্ন হেড' বলা হবে) এবং ট্যাগের রাজ্যটি নির্বাচন করুন । একটি নতুন প্রতিশ্রুতিবদ্ধকরণ তৈরি করা এই নামহীন শাখায় এটি করে এবং কোন ট্যাগটি নির্দেশ করে তা পরিবর্তন করে না।
জাকুব নরবস্কি

60
আইএমও, শাখাগুলি আলাদা টাইমলাইনগুলি (সমান্তরাল বিশ্ব), এবং ট্যাগগুলি একটি সময়রেখায় নির্দিষ্ট মুহূর্ত।
ইনিল

25
এখানে কেউ এখনও এটি উল্লেখ করেনি তবে আপনি একটি শাখা শুরু করার জন্য পয়েন্ট হিসাবে ট্যাগ ব্যবহার করতে পারেন:git checkout -b <branch name> <tag name>

143

আপনি যদি আপনার ভাণ্ডারটিকে এমন একটি বই হিসাবে মনে করেন যা আপনার প্রকল্পের অগ্রগতির ইতিহাসকে ...

শাখা

আপনি সেই স্টিকি বুকমার্কগুলির একটি হিসাবে একটি শাখাটিকে ভাবতে পারেন :

এখানে চিত্র বর্ণনা লিখুন

একেবারে নতুন সংগ্রহস্থলের মধ্যে কেবল একটি (ডাকা master) রয়েছে, যা স্বয়ংক্রিয়ভাবে আপনার লেখা সর্বশেষ পৃষ্ঠায় চলে আসে (ভাবুন কমিট করুন )। তবে বইটিতে অন্যান্য আগ্রহের বিষয়গুলি চিহ্নিত করতে আপনি আরও বুকমার্ক তৈরি এবং ব্যবহার করতে পারেন, যাতে আপনি সেগুলিতে দ্রুত ফিরে আসতে পারেন।

এছাড়াও, আপনি সর্বদা বইয়ের অন্য কোনও পৃষ্ঠায় একটি নির্দিষ্ট বুকমার্ক স্থানান্তর করতে পারেন ( git-resetউদাহরণস্বরূপ, ব্যবহার করে ); আগ্রহের বিষয়গুলি সাধারণত সময়ের সাথে সাথে পরিবর্তিত হয়।

ট্যাগ

আপনি ট্যাগগুলি অধ্যায় শিরোনাম হিসাবে ভাবতে পারেন ।

বুকমার্ক

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


16
আমি ইমেজ করব যে একটি শাখা একটি বই হবে, এবং বুকমার্কগুলি ট্যাগ। আপনি একটি বই লেখা চালিয়ে যেতে পারেন, তবে আপনি এটি সম্পাদনা করতে পারবেন না। ট্যাগ বইতে কেবল একটি স্থির মুহূর্ত।
মার্টিও ব্রিডিস

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

2
@ মার্টিয়াব্রিডিস আপনি যেভাবে একটি শাখা সম্পর্কে ভাবতে পছন্দ করেন তা আমি বুঝতে পারি তবে আমি গিতকে দেখতে পেয়েছি এটি আসলে বিভ্রান্তিকর। দেখুন stackoverflow.com/questions/25068543/...
jub0bs

2
এটি সত্যিই একটি সময় রক্ষাকারী উত্তর
আলী ফোরফি

2
আপনি যদি কোনও বই লিখতে শুরু করেন এবং আপনার প্রথম 50 পৃষ্ঠাগুলি রয়েছে, আপনি এটি অনুলিপি করতে পারেন (এটি থেকে একটি নতুন শাখা তৈরি করুন) এবং একই সাথে দুটি বই লেখা চালিয়ে যেতে পারেন (বা বইটির অনুলিপি অন্য কোনও লেখক - বিকাশকারীকে দিতে পারেন) এবং অবশেষে আপনি একত্রিত করতে পারেন অন্য বই থেকে আপনার বইতে পরিবর্তন।
22-18

42

সিভিএস থেকে আসা আপনার যা অনুধাবন করা দরকার তা হ'ল কোনও শাখা স্থাপনের সময় আপনি আর ডিরেক্টরি তৈরি করেন না।
আর কোনও "স্টিকি ট্যাগ" (যা কেবলমাত্র একটি ফাইলে প্রয়োগ করা যেতে পারে), বা "শাখা ট্যাগ" নেই।
শাখা এবং ট্যাগগুলি গিতে দুটি পৃথক বস্তু এবং এগুলি সর্বদা সমস্ত রেপোতে প্রয়োগ হয় ।

আপনাকে আর (এসভিএন-এর সাথে) আর স্পষ্টভাবে আপনার ভান্ডারটিকে এটির সাথে গঠন করতে হবে না:

branches
   myFirstBranch
     myProject
       mySubDirs
   mySecondBranch
     ...
tags
   myFirstTag
     myProject
       mySubDirs
   mySecondTag
   ...

সেই কাঠামোটি সিভিএসটি একটি সংস্করণ সিস্টেম নয়, উত্স নিয়ন্ত্রণ (বাস্তব উত্স নিয়ন্ত্রণ বনাম সংশোধন নিয়ন্ত্রণ দেখুন? ) থেকে এসেছে from
এর অর্থ শাখাগুলি সিভিএসের জন্য ট্যাগগুলির মাধ্যমে অনুকরণ করা হয়, এসভিএন-এর ডিরেক্টরি কপি cop

আপনি যদি কোনও ট্যাগ চেকআউট করতে ব্যবহার করেন এবং তাতে কাজ শুরু করেন তবে আপনার প্রশ্নটি সংবেদনশীল করে তোলে ।
যা আপনার করা উচিত নয়;)
কোনও ট্যাগ অপরিবর্তনীয় বিষয়বস্তুর প্রতিনিধিত্ব করে বলে মনে করা হয় , প্রতিবার একই সামগ্রী পাওয়ার গ্যারান্টি সহ কেবল এটি অ্যাক্সেস করতে ব্যবহৃত হয়।

গিট-এ, সংশোধনগুলির ইতিহাস একটি গ্রাফ গঠন করে, কমিটের একটি সিরিজ।
একটি শাখা সেই গ্রাফের একটি পথ

x--x--x--x--x # one branch
    \ 
     --y----y # another branch
       1.1
        ^
        |
        # a tag pointing to a commit
  • আপনি যদি কোনও ট্যাগ চেকআউট করেন তবে এটি থেকে কাজ শুরু করার জন্য আপনাকে একটি শাখা তৈরি করতে হবে।
  • আপনি যদি একটি শাখা চেকআউট করেন তবে আপনি সরাসরি সেই শাখার সর্বশেষ প্রতিশ্রুতিবদ্ধ ('হেড') দেখতে পাবেন।

সমস্ত প্রযুক্তিগুলির জন্য জাকুব নরবস্কির উত্তর দেখুন , তবে প্রকৃতপক্ষে, এই মুহুর্তে আপনার সমস্ত বিবরণ প্রয়োজন নেই ();

মূল কথাটি হ'ল: কোনও ট্যাগ প্রতিশ্রুতিবদ্ধ হওয়ার সরল পয়েন্টার হওয়ায় আপনি কখনই এর সামগ্রীতে পরিবর্তন করতে পারবেন না। তোমার একটা শাখা দরকার


আপনার ক্ষেত্রে, প্রতিটি বিকাশকারী একটি নির্দিষ্ট বৈশিষ্ট্যে কাজ করছেন:

  • স্ব স্ব ভাণ্ডারগুলিতে তাদের নিজস্ব শাখা তৈরি করা উচিত
  • তাদের সহকর্মীর সংগ্রহশালা থেকে শাখাগুলি ট্র্যাক করুন (একই বৈশিষ্ট্যটিতে কাজ করা একটি)
  • আপনার সমবয়সীদের সাথে আপনার কাজ ভাগ করার জন্য টান / ঠেলাঠেলি।

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


1
শাখা এবং ট্যাগগুলি কীভাবে কাজ করে তা স্পষ্ট করার জন্য ধন্যবাদ :) আমি আপনার উদাহরণ ছাড়াই এটি পুরোপুরি বুঝতে সক্ষম হব না।
ufk

3
@ ভনসি: আমি মনে করি আপনি আপনার উত্তরে "এসভিএন" অর্থ "সিভিএস" নয়। সিভিএসের ডিরেক্টরি কাঠামো নেই; এসভিএন করে। প্রকৃতপক্ষে, গিটে ট্যাগ করা আমাকে এসভিএনে ট্যাগ করার চেয়ে আরসিএস / সিভিএসে ট্যাগ করার অনেক বেশি মনে করিয়ে দেয় (যেখানে ট্যাগ == শাখাটি অধঃপতিত করা হয়)।
ক্রিস ক্লেল্যান্ড

1
@ ক্রিসক্লিল্যান্ড ভাল পয়েন্ট আমি (সম্পাদিত) উত্তরে আরও কিছুটা সিভিএস এবং এসভিএন পয়েন্ট আলাদা করার চেষ্টা করেছি।
ভনসি

37

শাখা কাঠের তৈরি এবং গাছের কাণ্ড থেকে বেড়ে ওঠে। ট্যাগগুলি কাগজ দিয়ে তৈরি হয় (কাঠের ডেরিভেটিভ) এবং গাছের বিভিন্ন জায়গা থেকে ক্রিসমাস অলঙ্কারগুলির মতো ঝুলানো হয়।

আপনার প্রকল্পটি গাছ এবং আপনার বৈশিষ্ট্য যা প্রকল্পে যুক্ত হবে তা একটি শাখায় বৃদ্ধি পাবে। উত্তরটি শাখা।



16

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


11
ট্যাগগুলি যতক্ষণ না উপস্থিত থাকে ততক্ষণ একই প্রতিশ্রুতিবদ্ধতার দিকে নির্দেশ করার গ্যারান্টিযুক্ত। সম্পূর্ণ সত্য নয়। আপনি প্রকৃতপক্ষে একটি ট্যাগ মুভ করতে পারেন git tag -f
jub0bs

14

ট্যাগগুলি হয় স্বাক্ষরিত বা স্বাক্ষরযুক্ত ; শাখাগুলি কখনই স্বাক্ষরিত হয় না।

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

শাখাগুলি কেবল একটি পৃথক প্রতিশ্রুতিতে স্থানান্তরিত করতে পারে না তবে এটি করা প্রত্যাশিত । আপনার স্থানীয় উন্নয়ন প্রকল্পের জন্য আপনার একটি শাখা ব্যবহার করা উচিত। "একটি ট্যাগে" গিট সংগ্রহস্থলের কাজ করা মোটেই অর্থপূর্ণ নয়।


12

আমি ভাবতে চাই শাখা যেমন যেখানে আপনি যাচ্ছেন , ট্যাগ যেমন যেখানে আপনি চলেছি

কোনও ট্যাগ অতীতের কোনও নির্দিষ্ট গুরুত্বপূর্ণ পয়েন্টের বুকমার্কের মতো মনে হয়, যেমন সংস্করণ প্রকাশ।

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


10

গীত নীতিগর্ভ রূপক ব্যাখ্যা একটি টিপিক্যাল DVCS নির্মিত পরার এবং কেন তাদের স্রষ্টাদের করেনি তারা যা করেনি। এছাড়াও, আপনি কম্পিউটার বিজ্ঞানী গিটের দিকে একবার নজর দিতে চাইতে পারেন ; এটি শাখা এবং ট্যাগ সহ গিটের প্রতিটি ধরণের অবজেক্টটি কী করে তা ব্যাখ্যা করে।


6

কোনও সংস্করণ চিহ্নিত করতে একটি ট্যাগ ব্যবহার করা হয়, বিশেষত এটি একটি শাখায় সময়ের একটি বিন্দুর উল্লেখ করে। একটি শাখা সাধারণত কোনও প্রকল্পে বৈশিষ্ট্য যুক্ত করতে ব্যবহৃত হয়।



4

সহজ উত্তরটি হ'ল:

শাখা: বর্তমান শাখা পয়েন্টার প্রতিটি প্রতিশ্রুতি সংগ্রহের জন্য সরান

কিন্তু

ট্যাগ: প্রতিশ্রুতিবদ্ধ যে একটি ট্যাগ পয়েন্ট পরিবর্তন হয় না, প্রকৃতপক্ষে ট্যাগটি সেই প্রতিশ্রুতির একটি স্ন্যাপশট।

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