গিটহাব প্রকল্প থেকে কীভাবে নির্দিষ্ট প্রতিশ্রুতি পাবেন


151

আমার গিটহাব থেকে ফেসবুক এপিআই ডাউনলোড করতে হবে । সাধারণত, আমি সর্বশেষতম সোর্স কোডটি ডাউনলোড করতে কেবল 'ডাউনলোডগুলি' ট্যাবটিতে ক্লিক করি this এই ক্ষেত্রে আমার একটি পুরানো প্রতিশ্রুতি দরকার: 91f256424531030a454548693c3a6ca49ca3f35a , তবে কীভাবে এই প্রকল্পটি থেকে পুরো প্রকল্পটি পাবেন তা আমার কোনও ধারণা নেই ...

কেউ দয়া করে আমাকে কীভাবে এটি করতে পারেন বলতে পারেন?

(বিটিডাব্লু, একটি ম্যাকের উপরে।


1
দয়া করে আপনার যদি "কেবল" "জিপড-স্ন্যাপশট-কোড" প্রয়োজন হয় তবে স্ট্যাকওভারফ্লো.com/ প্রশ্নগুলি / 13636559/… দেখুন ।
জিন

উত্তর:


216

প্রথমে গিট ব্যবহার করে সংগ্রহস্থলটি ক্লোন করুন, যেমন:

git clone git://github.com/facebook/facebook-ios-sdk.git

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

cd facebook-ios-sdk

... এবং git checkout <COMMIT>ডান প্রতিশ্রুতিতে পরিবর্তন ব্যবহার করুন :

git checkout 91f25642453

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


4
git exportআপনি কেবল ফাইলগুলি চাইলে এই মুহুর্তে আপনি এটিও করতে পারেন ।
জিওনক্রস

1
git checkout -q <commit#>গিট চেকআউট চলাকালীন সতর্কবার্তা stderr নিরব করে।
মনওয়ালান গাজাপাতি

আমি যখন গিট চেকআউট করি 441b034635240bc873700473af3e98533e94a0b5, এটি একটি ত্রুটি দেয়: মারাত্মক: রেফারেন্স গাছ নয়: 441b034635240bc873700473af3e98533e94a0b5
ttb

135

আমি জানি না আপনি যখন এই প্রশ্নটি পোস্ট করেছিলেন সেখানে এটি ছিল কিনা তবে কমিট ডাউনলোড করার সর্বোত্তম ও সহজ উপায় হ'ল কোনও সংগ্রহশালা দেখার সময় কমিট ট্যাবে ক্লিক করা । তারপরে কমিট নামটি ক্লিক করার পরিবর্তে কমিটের নাম / বার্তাটির ডান দিকে <> চিহ্ন সহ ইতিহাসের বোতামের এই পয়েন্টে সংগ্রহস্থলটি ব্রাউজ করুন এবং শেষ পর্যন্ত ক্লোন ক্লিক করলে বা ডাউনলোড জিপ বোতামে ক্লিক করুন ডাউনলোড বোতাম।

আমি আশা করি এটি আপনাকে সাহায্য করবে


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

@ আজাক্স এটি সত্য নয় আপনি এখনও শা ব্যবহার করে পেতে পারেন git reflogএবং তারপরে বিচ্ছিন্ন প্রতিশ্রুতিটি চেকআউট করতে পারেন
অ্যারোন ব্র্যাজার

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

@ আজাক্স আহ, স্পষ্টির জন্য ধন্যবাদ। বিকল্প হিসাবে, আপনি গিটহাব এপিআইতে ( api.github.com/repos/facebook/facebook-ios-sdk/events ) টিপুন এবং এতিম প্রতিশ্রুতি থেকে একটি শাখা তৈরি করতে পারেন ( এখানে নির্দেশাবলী )
অ্যারন ব্র্যাজার

খুব সুন্দর. +1 আমি জানতাম না যে আপনি গিথুবের রিফ্লোগের মতো জিজ্ঞাসা করতে পারবেন!
আজাক্স

27

জিভ-এ সিভানের উত্তর answer এখানে চিত্র বর্ণনা লিখুন

1. গিথুব কমিট ক্লিক করুন

2. প্রতিটি কমিটের ডান পাশে ব্রাউজ কোড নির্বাচন করুন

৩. ডাউনলোড জিপ-এ ক্লিক করুন, যা কমিটমেন্টের সেই সময়ে উত্স কোডটি ডাউনলোড করবে


হ্যালো সুরজ আপনি কি দয়া করে আমাকে বলতে পারবেন কীভাবে আপনি আপনার পর্দার জিআইএফ তৈরি করেছেন?
রাহুল সাতাল

দ্রুত সময় প্লেয়ার ব্যবহার এটা .Google কোনো উপলব্ধ টুল ব্যবহার করে GIF ভিডিওটির screen.Do রূপান্তর একটি ভিডিও রেকর্ড করতে @ রাহুল Satal।
সুরজ কে টমাস

1
জিফের জন্য @ সুরজক থমাসকে ধন্যবাদ
সিভান

10

কেবলমাত্র 7-সংখ্যার SHA1 সংক্ষিপ্ত ফর্মটি ব্যবহার করে একটি প্রতিশ্রুতি ডাউনলোড করতে:

কাজের উদাহরণ:

https://github.com/python/cpython/archive/31af650.zip  

বর্ণনা:

 `https://github.com/username/projectname/archive/commitshakey.zip`

আপনার যদি লম্বা হ্যাশ কী থাকে তবে 31af650ee25f65794b75d4dfefed6fe4758781c1কেবল প্রথম 7 টি অক্ষর পান 31af650। এটি গিটহাবের জন্য ডিফল্ট।


8

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

  1. প্রতিশ্রুতিটি উন্মুক্ত করুন (url এর মত: github.com/org/repo/commit/long-commit-sha)
  2. উপরের ডানদিকে "ব্রাউজ ফাইলগুলি" ক্লিক করুন
  3. উপরের বাম দিকে ড্রপডাউন "ট্রি: শর্ট শ ..." ক্লিক করুন
  4. একটি নতুন শাখার নাম টাইপ করুন
  5. git pull স্থানীয় নতুন শাখা

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

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

2

প্রশ্নের শিরোনাম অস্পষ্ট।

  • আপনার যদি কোন প্রতিশ্রুতিবদ্ধতা পেতে প্রয়োজন হয় তবে কেবল এই URL টি ব্যবহার করুন: https://github.com/facebook/facebook-ios-sdk/commit/91f256424531030a454548693c3a6ca49ca3f35a.patch (যেমন থেকে একটি একক প্রতিশ্রুতি-আলাদা কীভাবে ডাউনলোড করবেন সে প্রশ্নের জন্য এখানে ব্যাখ্যা করুন) GitHub? )
  • আপনার যদি প্রয়োজন প্রতিশ্রুতি অনুযায়ী পুরো প্রকল্পটি ডাউনলোড করতে হয় তবে এই URL টি ব্যবহার করুন: https://github.com/facebook/facebook-ios-sdk/archive/91f256424531030a454548693c3a6ca49ca3f35a.zip
  • যদি আপনার গিট রিভিশন লগের প্রয়োজন হয়, সংগ্রহস্থলটি ক্লোন করুন এবং আপনি যে প্রতিশ্রুতিটি চান তা চেকআউট করুন।

1

গৃহীত উত্তর ছাড়াও:

হ্যাশগুলি দেখতে আপনাকে প্রস্তাবিত কমান্ড "গিট চেকআউট হ্যাশ " ব্যবহার করতে হবে, আপনি ব্যবহার করতে পারেনgit log । Hoewever, আপনার যা প্রয়োজন তার উপর নির্ভর করে হ্যাশগুলি অনুলিপি / আটকানোর চেয়ে সহজ উপায়।

আপনি git log --onelineআরও কমপ্রেস ফর্ম্যাটে অনেক প্রতিশ্রুতি বার্তা পড়তে ব্যবহার করতে পারেন ।

বলুন যে আপনি এটি কমপক্ষে তথ্য এবং কেবল আংশিক দৃশ্যমান হ্যাশগুলির সাথে কমিটের এক-লাইন তালিকা দেখতে পান:

hash111 (HEAD -> master, origin/master, origin/HEAD)
hash222 last commit
hash333 I want this one
hash444 did something
....

আপনি যদি চান last commit, আপনি ব্যবহার করতে পারেন git checkout master^^আপনি কমিট দেয় সামনে মাস্টার। তাই hash222

আপনি যদি এনটি-র শেষ প্রতিশ্রুতি চান, আপনি ব্যবহার করতে পারেন git checkout master~n। উদাহরণস্বরূপ, ব্যবহার git checkout master~2আপনাকে প্রতিশ্রুতি দেবে hash333


0

কমিটের মাধ্যমে নেভিগেট না করে আপনি বর্তমান সংশোধন / প্রতিশ্রুতিবদ্ধতার জন্য "পারমালিঙ্ক" পেতে yকী ( গিথুব সহায়তা , কীবোর্ড শর্টকাটস ) টিপতে পারেন।
এটি https://github.com/<user>/<repository>ইউআরএলকে (মাস্টার / হেড) থেকে পরিবর্তন করবেhttps://github.com/<user>/<repository>/tree/<commit id>

নির্দিষ্ট প্রতিশ্রুতি ডাউনলোড করতে, আপনাকে সেই URL টি থেকে পৃষ্ঠাটি পুনরায় লোড করতে হবে, তাই Clone or Downloadবোতামটি https://github.com/<user>/<repository>/archive/<commit id>.zip সর্বশেষের পরিবর্তে "স্ন্যাপশট" এ নির্দেশ করবে https://github.com/<user>/<repository>/archive/master.zip


0

নিম্নলিখিত কমান্ড ক্রম চেষ্টা করুন:

$ git fetch origin <copy/past commit sha1 here>
$ git checkout FETCH_HEAD
$ git push origin master

-1

আপনি যদি কোনও নির্দিষ্ট প্রতিশ্রুতি নিয়ে যেতে চান বা কোনও নির্দিষ্ট কমিটের কোড করতে চান তবে নীচের কমান্ডটি ব্যবহার করতে পারেন:

git checkout <BRANCH_NAME>
git reset --hard  <commit ID which code you want>
git push --force

উদাহরণ:

 git reset --hard fbee9dd 
 git push --force

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