গিটের সাথে একটি নির্দিষ্ট ট্যাগ ডাউনলোড করুন


1941

আমি কীভাবে গিট সংগ্রহস্থলের একটি নির্দিষ্ট ট্যাগ ডাউনলোড করতে পারি তা জানার চেষ্টা করছি - এটি বর্তমান সংস্করণের পিছনে একটি সংস্করণ।

আমি দেখেছি গিট ওয়েব পৃষ্ঠায় পূর্ববর্তী সংস্করণের জন্য একটি ট্যাগ রয়েছে, যার সাথে লম্বা হেক্স সংখ্যার কিছু বস্তুর নাম রয়েছে।

তবে সংস্করণটির নাম Tagged release 1.1.5সাইট অনুযায়ী " "।

আমি এরকম একটি কমান্ড চেষ্টা করেছি (নাম পরিবর্তন করে):

git clone http://git.abc.net/git/abc.git my_abc

এবং আমি কিছু পেয়েছি - একটি ডিরেক্টরি, উপ-ডিরেক্টরিগুলির একটি গুচ্ছ ইত্যাদি etc.

যদি এটি সম্পূর্ণ সংগ্রহস্থল হয় তবে আমি যে সংস্করণটি সন্ধান করছি তাতে কীভাবে পাব? যদি তা না হয় তবে আমি কীভাবে সেই বিশেষ সংস্করণটি ডাউনলোড করব?


11
আমি তারপরে প্রোডাকশনটি সম্পূর্ণ আলাদা রেপোতে বিকাশ করি, তাই যখন আমি গিট চেকআউট ব্যবহার করার চেষ্টা করছিলাম তখন আমার উত্পাদন কোনও ট্যাগ জানত না। সমাধানটি ছিল "গিট পুল - ট্যাগস" ব্যবহার করে গিট চেকআউট ব্যবহার করা।
এন্টারপ্রাইজ আর্কিটেক্ট

11
"গিট ফেচ - ট্যাগস" খুব কার্যকর
জন এর্ক ২

16
পুরো সংগ্রহস্থলটিকে ক্লোনিং এড়ানোর জন্য কোনও ট্যাগে স্যুইচ করা, আপনি সরাসরি একটি করতে পারেন clone -b "Tagged release 1.1.5" http://git.abc.net/git/abs.git my_abc। এটি কেবল তখনই কাজ করবে যদি আপনার একই নামে অবশ্যই একটি শাখা না থাকে (আপনার পদ্ধতিটির উপর নির্ভর করে এটি কখনও না ঘটে)।
রেডগ্লাইফ

3
রেডগ্লাইফ ধন্যবাদ আমি এটি চেষ্টা করব। অন্যথায় আমরা এই মত করতে পারেন। git checkout -b new-branch tag-name। এখন আপনার নতুন শাখা ক্লোন করুন। যখনই আমরা চাই আমরা নতুন-শাখা মুছতে পারি।
কালিদাসন

উত্তর:


2871
$ git clone

আপনাকে পুরো সংগ্রহশালা দেবে।

ক্লোনটির পরে, আপনি ট্যাগগুলির সাথে তালিকাটি তালিকাভুক্ত করতে পারেন $ git tag -lএবং তারপরে একটি নির্দিষ্ট ট্যাগটি চেকআউট করতে পারেন :

$ git checkout tags/<tag_name>

আরও ভাল, চেকআউট করুন এবং একটি শাখা তৈরি করুন (অন্যথায় আপনি ট্যাগ সংশোধন সংখ্যার নাম অনুসারে একটি শাখায় থাকবেন):

$ git checkout tags/<tag_name> -b <branch_name>

15
হাঁ। গিট এই ক্ষেত্রে subversion থেকে পৃথক। একটি এসএনএন ট্যাগ মূলত ফাইলগুলি একটি নতুন ফোল্ডারে অনুলিপি করে, যাতে আপনি একটি নির্দিষ্ট গুচ্ছের ফাইলগুলি চেকআউট করতে পারেন, যেখানে গিট ট্যাগগুলি কেবল নির্দিষ্ট সংশোধনের দিকে নির্দেশ করে।
ডিবিআর

5
আপনার যদি একটি শাখা এবং একই ট্যাগ রয়েছে এমন একটি ট্যাগ থাকে? আপনি যদি কেবল "গিট চেকআউট <নাম>" বলে থাকেন তবে এটি "সতর্কতা: পুনঃনামকরণ '<name>' দ্বিধাগ্রস্থ।
ম্যাট্রিক্সফ্রোগ

54
চেকআউট করার সময় এবং ডেরেক যেমন উল্লেখ করেছিলেন, রেপো একটি "বিচ্ছিন্ন মাথা" অবস্থায় চলে যায়। পরিবর্তে, -bএকটি নতুন শাখা তৈরি করতে পতাকা বলার গিট যুক্ত করুন এবং একটি শাখার নাম নির্দিষ্ট করুন:git checkout <tag_name> -b <branch_name>
হেল্লান

22
@ হেলাতান আপনার কেবল তখনই করা উচিত যখন আপনি আসলে একটি শাখা তৈরি করতে চান, তবে বেশিরভাগ সময় আপনি সম্ভবত তা করেন না। "বিচ্ছিন্ন মাথা" অবস্থায় চালানো আপনার ক্ষতি করবে না এবং আপনি যদি কিছু গিট ইতিহাস পরীক্ষা করতে চান তবে সম্ভবত আপনি যা চান তা সম্ভবত is
মেশিনগোস্ট

4
গিট সংস্করণে 1.8.3.5এবং আরও নতুনতে, --branch <tag ref>আপনাকে <tag ref>রেপো হেড হিসাবে শুরু করে আপনার সংগ্রহস্থলটি ডাউনলোড করার অনুমতি দেওয়া উচিত ; এর সাথে মিলিত --depth 1একটি অগভীর ট্যাগ চেকআউট করবে। দেখুন stackoverflow.com/a/21699307/1695680
ThorSummoner

409
git clone --branch my_abc http://git.abc.net/git/abc.git

রেপো ক্লোন করবে এবং আপনার আগ্রহী ট্যাগটিতে ছাড়বে।

গিট ক্লোন রাজ্যের 1.8.0 এর জন্য ডকুমেন্টেশন ।

- ব্রাঙ্ক ফলাফল সংগ্রহস্থলের জন্য প্রতিশ্রুতিবদ্ধভাবে হেডএইডকে ট্যাগও নিতে এবং পৃথক করতে পারে।


7
এটি (কমপক্ষে এখন) ট্যাগগুলির জন্য কাজ করে, যদিও আপনি বিচ্ছিন্ন হেড অবস্থায় রয়েছেন।
এমএক্সসিএল

72
এফওয়াইআই: --depth 1কোনও অ-বর্তমান কমিটি ডাউনলোড এড়াতে নির্দিষ্ট করুন ।
একিউম্যানাস

4
এটি প্রকৃতপক্ষে ট্যাগগুলির সাথে কাজ করে না । কেবল শাখা। সম্পাদনা: দেখে মনে হচ্ছে গিটের কেবল নতুন সংস্করণগুলি এটি সমর্থন করে।
lzap

দুটি বা ততোধিক ট্যাগের অগভীর ক্লোন করার জন্য আমরা .git / কনফিগার (বা কোনওরকমভাবে এটি কনফিগার করতে পারি) সম্পাদনা করতে পারি, যদি প্রয়োজন হয় তবে পূর্ণ ক্লোন ইত্যাদিতে একটি অগভীর ক্লোন ইত্যাদি আপগ্রেড করতে পারে
স্যাম ওয়াটকিন্স

আপনি ট্যাগ সহ আপনি যে শাখাটি চান তাও নির্দিষ্ট করতে পারেন। git clone --branch my_abc http://git.abc.net/git/abc.git -b qualityমানের মতো আমরা বিটিডব্লু চাই সেই শাখার নাম।
হাজিমডিকেনলি

180

মোতায়েনের জন্য কেবলমাত্র প্রদত্ত ট্যাগটি পরীক্ষা করার জন্য, আমি উদাহরণ ব্যবহার করি:

git clone -b 'v2.0' --single-branch --depth 1 https://github.com/git/git.git

কোনও সম্পূর্ণ সংগ্রহস্থলের পরিবর্তে সাম্প্রতিকতম কোডটিতে যদি কারও আগ্রহ থাকে তবে এটি দূরবর্তী সংগ্রহস্থল থেকে কোড চেক করার সবচেয়ে দ্রুততম উপায় বলে মনে হয়। এইভাবে, এটি 'এসএনএন কো' কমান্ডের অনুরূপ।

দ্রষ্টব্য: গিট ম্যানুয়াল অনুসারে , --depthপতাকাটি --single-branchডিফল্টরূপে পাস করা ।

--depth

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


10
এই জটিল এটি বিশ্বাস করতে পারে না। অনুমান করুন যে কেউ তাদের কোড অন্যদের দ্বারা ব্যবহৃত হবে বলে আশা করে না।
বেন

9
@ বেন, এটি আসলে সবচেয়ে সহজ সমাধান (একক কমান্ডের প্রয়োজন)
এলিরান মালকা

3
@ কেন এই জটিল? আপনি ডিফল্ট থেকে আলাদাভাবে করতে চান এমন কয়েকটি বৈশিষ্ট্য সহ এটি একটি বিশেষ ইউসকেস। অবশ্যই আপনি এটি নির্দিষ্ট করা প্রয়োজন। সাধারণ সমাধানটি হ'ল বিতরণকৃত ভিসিএসে পুরো রেপো চেকআউট করা ।
এরিকবওয়ার্ক

9
@ বেন ঠিক আছে গিটটি আফসোস জটিল এবং লিনাস লিখেছিলেন বছরখানেক আগে এবং তিনিই একমাত্র যিনি "সত্যই" বুঝতে পারেন যে এটি কীভাবে কাজ করে। xkcd.com/1597
রায়াননার্ড

11
--depth nবোঝা --single-branch। আপনার দুজনের দরকার নেই।
নিয়াজ

98

আমি গিট বিশেষজ্ঞ নই, তবে আমি মনে করি এটি কাজ করা উচিত:

git clone http://git.abc.net/git/abc.git
cd abc
git checkout my_abc 

অথবা

git clone http://git.abc.net/git/abc.git
cd abc
git checkout -b new_branch my_abc

দ্বিতীয় প্রকরণটি ট্যাগের উপর ভিত্তি করে একটি নতুন শাখা প্রতিষ্ঠা করে যা আপনাকে একটি 'বিচ্ছিন্ন হেড' এড়াতে দেয়। (গিট-চেকআউট ম্যানুয়াল)

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


4
ধন্যবাদ. git checkout -b b1.5.0 v1.5.0গিথুব পৃষ্ঠাগুলিতে সাফল্যের সাথে ধাক্কা দেওয়ার জন্য 'ঘ-পৃষ্ঠাগুলি' শাখার মধ্যে কোনও সংস্করণ পরীক্ষা করার সময় আমার ব্যবহার করা দরকার । আমি লিখেছি এই গিস্টটি
ক্রিস জ্যাকব

4
আমি মনে করি না এটি পুরোপুরি সঠিক (উদাহরণস্বরূপ টার্মিনালটিতে আটকানো) যেহেতু আপনি কোনও শাখা চেক আউট করার আগে আপনাকে প্রথমে cdপ্রবেশ করতে হবেabc/
স্টিভেন লু

@ স্টিভেনলু আপনি অবশ্যই সঠিক আমি কাট-পেস্টের চেয়ে ধারণাগুলির জন্য যাচ্ছিলাম, তবে এটি যথাসম্ভব যথাযথও হতে পারে। আমি যোগ করেছি cd
গ্রসভোভেল

81

আপনি প্রদত্ত ট্যাগ বা প্রতিশ্রুতিবদ্ধ আইডির জন্য টর্ বলটি ডাউনলোড করতে গিট সংরক্ষণাগারটি ব্যবহার করতে পারেন:

git archive --format=tar --remote=[hostname]:[path to repo] [tag name] > tagged_version.tar

আপনি কোনও ট্যাগের একটি জিপ সংরক্ষণাগারও রফতানি করতে পারেন।

  1. তালিকা ট্যাগ:

    git tag
    
    0.0.1
    0.1.0
    
  2. একটি ট্যাগ রফতানি করুন:

    git archive -o /tmp/my-repo-0.1.0.zip --prefix=my-repo-0.1.0/ 0.1.0
    
  3. মন্তব্য:

    • আপনার ফর্ম্যাটটি নির্দিষ্ট করার দরকার নেই। এটি আউটপুট ফাইলের নাম দ্বারা নেওয়া হবে।
    • উপসর্গটি নির্দিষ্ট করে আপনার কোডটি কোনও ডিরেক্টরিতে রফতানি করবে (যদি আপনি একটি পিছনে স্ল্যাশ অন্তর্ভুক্ত করেন)।

3
এই কমান্ডের submodules সাথে কাজ করে না, দেখুন stackoverflow.com/questions/1591387/...
Zitrax

3
তবে গিট সংরক্ষণাগারও সংস্করণ নিয়ন্ত্রণ সরিয়ে দেয়, সুতরাং আপনি পরবর্তী ট্যাগটিতে আপগ্রেড করতে কেবল অন্য গিট চেকআউট করতে পারবেন না।
idbrii

9
হ্যাঁ আপনি সংস্করণ নিয়ন্ত্রণ হারিয়ে ফেলেছেন তবে গিট ক্লোনটির তুলনায় গিট সংরক্ষণাগারটি সংরক্ষণের সময়টি একেবারেই অবিশ্বাস্য! +1 টি
মার্চ

আমি যা চাই তা এটিই বন্ধ, git archiveআমি যা করতে চাই তা যখন পাবলিক রেপো থেকে ডাউনলোড করা হয় তখন তা আমাকে পাসওয়ার্ড জিজ্ঞাসা করে। আমি কীভাবে এটিকে ssh এর পরিবর্তে http ব্যবহার করতে পারি?
রব্রু

1
এই সঙ্গে ব্যর্থ fatal: Operation not supported by protocol.এবং Unexpected end of command streamত্রুটি। বিকল্পভাবে, এটি ত্রুটিও ফিরিয়ে দিতে পারে fatal: The remote end hung up unexpectedly
একিউম্যানাস

52

--single-branchস্যুইচটি ব্যবহার করুন (গিট 1.7.10 হিসাবে উপলব্ধ) । বাক্য গঠনটি হ'ল:

git clone -b <tag_name> --single-branch <repo_url> [<dest_dir>] 

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

git clone -b 'v1.9.5' --single-branch https://github.com/git/git.git git-1.9.5

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


3
যে কেউ এই উত্তরটিকে নিম্নমান / মান দিয়েছেন: দয়া করে ডাউনওটের সংক্ষিপ্ত বিবরণ দিয়ে একটি মন্তব্যও করুন। (শুধু জিজ্ঞাসা করছি, কারণ আমি কিছুটা বিভ্রান্ত। কারণ, আফাইক, প্রদত্ত সমস্যার এটি সেরা সমাধান
eyecatchUp

5
ডাউনবোটগুলি খুব বেশি বোঝার চেষ্টা করবেন না .. আপনার উত্তরটি খুব ভাল, তাদের ডাউনভোটগুলি সম্ভবত অসমর্থিত .. এটাই জীবন
এসএফ-

গিট সংস্করণ 2.22.0.windows.1
মহেশ

29

প্রথমে সেই নির্দিষ্ট রিমোটে সমস্ত ট্যাগ আনুন

git fetch <remote> 'refs/tags/*:refs/tags/*'

বা কেবল সহজভাবে টাইপ করুন

git fetch <remote>

তারপরে উপলভ্য ট্যাগগুলি পরীক্ষা করুন

git tag -l

তারপরে নীচের কমান্ডটি ব্যবহার করে সেই নির্দিষ্ট ট্যাগটিতে স্যুইচ করুন

git checkout tags/<tag_name>

আশা করি এটি আপনাকে সহায়তা করবে!


´git ট্যাগ -l´ কেন এটি ´git ট্যাগ´ এর মতো হওয়া উচিত?
serup

1
@serup; উপলভ্য ট্যাগগুলির তালিকা করার git tagসময় একটি ট্যাগ যুক্ত করবেgit tag -l
জাস্ট ডাবকেন

18

যদি আপনার ট্যাগগুলি লিনাক্স sortকমান্ডটি ব্যবহার করে বাছাইযোগ্য হয় তবে এটি ব্যবহার করুন:

git tag | sort -n | tail -1

যেমন। যদি git tagফিরে আসে:

v1.0.1
v1.0.2
v1.0.5
v1.0.4

git tag | sort -n | tail -1 আউটপুট হবে:

v1.0.5

git tag | sort -n | tail -2 | head -1 আউটপুট হবে:

v1.0.4

(কারণ আপনি দ্বিতীয় সাম্প্রতিক ট্যাগটি চেয়েছিলেন)

ট্যাগটি চেকআউট করতে, প্রথমে রেপো ক্লোন করুন, তারপরে টাইপ করুন:

git checkout v1.0.4

.. অথবা আপনার যা যা ট্যাগ দরকার।


25
যতক্ষণ না আপনি v1.0.10 এ পৌঁছেছেন এবং তারপরে খারাপ কিছু ঘটবে :)
লরেন্ট

10
আপনার ট্যাগগুলি কালানুক্রমিকভাবে বাছাই করার জন্য:git for-each-ref --sort='*authordate' --format='%(tag)' refs/tags
বব জি

সর্বশেষ সংস্করণটি স্বয়ংক্রিয়ভাবে চেকআউট করার জন্য ওয়ান-লাইনারgit checkout `git tag | sort -n | tail -1`
ওয়েজ 14

এর sort -Vপরিবর্তে আপনি ব্যবহার করতে পারেন sort -n। পূর্ববর্তীটি সঠিকভাবে সংস্করণগুলি পরিচালনা করে, যা প্রয়োজনীয়ভাবে সংখ্যাযুক্ত নয়, যেমন "1.2.3" 1.2 এটিও বুঝতে পারে যে "0.4.10" "0.4.1" এর পরে যায় এবং "0.4.2" এর পরে নয় যা -nআপনাকে দেবে।
ম্যাটিউজ মিসিয়র্নি

16

আমি গিট চেকআউট ডকুমেন্টেশন চেক করেছি , এটি একটি আকর্ষণীয় জিনিস প্রকাশ করেছে:

গিট চেকআউট-বি <নতুন / ব্র্যাঞ্চ_নাম> <স্টার্ট_পয়েন্ট>, যেখানে <স্টার্ট_পয়েন্ট> নতুন শাখা শুরু করার জন্য একটি কমিটের নাম; হেডে ডিফল্ট

সুতরাং আমরা ট্যাগের নামটি উল্লেখ করতে পারি (যেমন ট্যাগ কোনও অঙ্গীকারের নাম ছাড়া কিছুই নয়) যেমনটি বলে:

>> গিট চেকআউট-বি 1.0.2_ ব্র্যাঙ্ক 1.0.2
পরে, কিছু ফাইল সংশোধন করুন
>> গিট পুশ --tags

পিএস: গিটে, আপনি সরাসরি কোনও ট্যাগ আপডেট করতে পারবেন না (যেহেতু ট্যাগটি কমিটের জন্য কেবল একটি লেবেল), আপনাকে একই শাখার মতো ট্যাগটি চেকআউট করতে হবে এবং তারপরে এটি প্রতিশ্রুতিবদ্ধ করতে হবে এবং তারপরে একটি পৃথক ট্যাগ তৈরি করতে হবে।


1
অথবা যদি আপনি কোনও পরিবর্তন করার আশা করেন না এবং কোডটি সেই ট্যাগটির মতো দেখতে কেমন দেখতে চান তবে আপনি একটি শাখা তৈরি না করেই ট্যাগটি চেকআউট করতে পারেন। আপনি "বিচ্ছিন্ন মাথা" অবস্থায় আছেন তা বোঝাতে আপনি কিছু পাঠ্য পাবেন এবং আপনি চাইলে পরে সর্বদা শাখা তৈরি করতে পারেন।
ম্যাট্রিক্সফ্রোগ

16
git fetch <gitserver> <remotetag>:<localtag>

===================================

আমি সবেমাত্র এটি করেছি। প্রথমে আমি নিশ্চিত করেছিলাম যে আমি ট্যাগ নামের বানান জানি।

git ls-remote --tags gitserver; : or origin, whatever your remote is called

এটি আমাকে বেছে নিতে আমার গিট সার্ভারে ট্যাগগুলির একটি তালিকা দিয়েছে। মূল পোস্টারটি ইতিমধ্যে তার ট্যাগের নাম জানত তাই এই পদক্ষেপটি সবার জন্য প্রয়োজনীয় নয়। আসল তালিকাটি দীর্ঘতর হলেও আউটপুটটি এ জাতীয় দেখাচ্ছে।

8acb6864d10caa9baf25cc1e4857371efb01f7cd    refs/tags/v5.2.2.2
f4ba9d79e3d760f1990c2117187b5010e92e1ea2    refs/tags/v5.2.3.1
8dd05466201b51fcaf4ca85897347d82fcb29518    refs/tags/Fix_109
9b5087090d9077c10ba22d99d5ce90d8a45c50a3    refs/tags/Fix_110

আমি যে ট্যাগটি চেয়েছিলাম তা বাছাই করেছি এবং নীচে আরও কিছু এনেছি।

git fetch gitserver Fix_110

আমি আমার স্থানীয় মেশিনে এটি ট্যাগ করেছিলাম, আমার ট্যাগটিকে একই নাম দিয়ে।

git tag Fix_110 FETCH_HEAD

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

অন্যরা যেমন পরামর্শ দিয়েছে আমি চেকআউটও ব্যবহার করতে চাইনি। আমি একটি শাখা চেক আউট করেছি এবং এটি প্রভাবিত করতে চাই না। আমার উদ্দেশ্যটি ছিল আমি যে সফ্টওয়্যারটি চেয়েছিলাম তা আনতে যাতে আমি চেরি-বাছাই করতে পারি এবং এটি আমার বিকাশে যুক্ত করতে পারি।

ট্যাগ হওয়া প্রতিশ্রুতিটির অনুলিপি না হয়ে নিজেই ট্যাগ আনার উপায় রয়েছে। আমাকে আনার প্রতিশ্রুতি ট্যাগ করতে হয়েছিল। সম্পাদনা: হ্যাঁ হ্যাঁ, আমি এটি এখন খুঁজে পেয়েছি।

git fetch gitserver Fix_110:Fix_110

আপনি কোলনটি কোথায় দেখছেন, এটি দূরবর্তী নাম: স্থানীয় নাম এবং এখানে তারা ট্যাগের নাম। এটি কার্যকারী গাছ ইত্যাদির বিরক্ত না করে চলে It এটি দেখে মনে হচ্ছে দূরবর্তী থেকে স্থানীয় মেশিনে জিনিসগুলি অনুলিপি করা হয় যাতে আপনার নিজের অনুলিপি থাকে।

git fetch gitserver --dry-run Fix_110:Fix_110

--dry-run অপশন যুক্ত করার সাথে সাথে আপনি কী চান তা যাচাই করতে চাইলে কমান্ডটি কী করবে তা একবার দেখাবে। সুতরাং আমি একটি সহজ অনুমান

git fetch gitserver remotetag:localtag

আসল উত্তর।

=

ট্যাগগুলি সম্পর্কে একটি পৃথক নোট ... আমি যখন নতুন কিছু শুরু করি তখন থেকে আমি সাধারণত গিট ইন এর পরে খালি সংগ্রহস্থলটি ট্যাগ করি

git rebase -i XXXXX 

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

git init
touch .gitignore
[then add it and commit it, and finally]
git tag EMPTY

অর্থাত্ আমার প্রথম আসল পরিবর্তনের আগে একটি প্রতিশ্রুতি তৈরি করুন এবং তারপরে পরে ব্যবহার করুন

git rebase -i EMPTY 

যদি আমি আমার পরিবর্তনটি প্রথম পরিবর্তন সহ পুনরায় চালু করতে চাই


8

পিটার জনসনের উত্তরের বাইরে গিয়ে আমি নিজের জন্য একটি ছোট্ট ছোট্ট ওরফে তৈরি করেছি:

alias gcolt="git checkout $(git tag | sort -V | tail -1)"

ওরফে 'গিট চেকআউট সর্বশেষ ট্যাগ'।

এটি বাছাইয়ের GNU সংস্করণে নির্ভর করে, যা যথাযথভাবে পরিচালনা করে যেমন কোনও লরঙ্গার নির্দেশ করে:

v1.0.1
...
v1.0.9
v1.0.10

আপনি যদি ম্যাকের উপরে থাকেন brew install coreutilsএবং তার পরিবর্তে gsort কল করুন।



5

ট্যাগ চেক আউট

আপনি যদি ট্যাগগুলির নির্দেশিত ফাইলগুলির সংস্করণগুলি দেখতে চান তবে আপনি গিট চেকআউট করতে পারেন, যদিও এটি আপনার সংগ্রহস্থলটিকে "বিচ্ছিন্ন হেড" অবস্থায় রাখে, যার কিছু খারাপ পার্শ্ব প্রতিক্রিয়া রয়েছে:

$ git checkout 2.0.0
Note: checking out '2.0.0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 99ada87... Merge pull request #89 from schacon/appendix-final

$ git checkout 2.0-beta-0.1
Previous HEAD position was 99ada87... Merge pull request #89 from schacon/appendix-final
HEAD is now at df3f601... add atlas.json and cover image

"বিচ্ছিন্ন হেড" অবস্থায়, আপনি যদি পরিবর্তন করেন এবং তারপরে একটি প্রতিশ্রুতি তৈরি করেন, ট্যাগটি একই থাকবে, তবে আপনার নতুন প্রতিশ্রুতি কোনও শাখার সাথে সম্পর্কিত হবে না এবং সঠিক কমিট হ্যাশ ব্যতীত অ্যাক্সেসযোগ্য হবে। সুতরাং, যদি আপনাকে পরিবর্তন করতে হয় - বলুন আপনি কোনও পুরানো সংস্করণে একটি বাগ ঠিক করছেন, উদাহরণস্বরূপ - আপনি সাধারণত একটি শাখা তৈরি করতে চাইবেন:

$ git checkout -b version2 v2.0.0
Switched to a new branch 'version2'

যদি আপনি এটি করেন এবং প্রতিশ্রুতিবদ্ধ হন তবে আপনার সংস্করণ 2 শাখাটি আপনার ভি 2.0.0 ট্যাগের চেয়ে কিছুটা আলাদা হবে কারণ এটি আপনার নতুন পরিবর্তনগুলি নিয়ে এগিয়ে চলেছে, তাই সাবধান হন।


4

আমি এটি গিথুব এপিআইয়ের মাধ্যমে করি:

curl -H "Authorization: token %(access_token)s" -sL -o /tmp/repo.tar.gz "http://api.github.com/repos/%(organisation)s/%(repo)s/tarball/%(tag)s" ;\
tar xfz /tmp/repo.tar.gz -C /tmp/repo --strip-components=1 ; \

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