কিভাবে একটি git রিপোজিটরি থেকে শুধুমাত্র একক ফাইল চেকআউট চেকআউট?




আমি কিভাবে একটি গিট repo থেকে এক ফাইল চেকআউট করবেন?


Git রেপোজিটরির মধ্যে শুধুমাত্র একটি বিশেষ ফাইল টেনে আনতে ও ধাক্কা দেওয়ার সম্পূর্ণ সমাধান এখানে দেওয়া হল:

  1. প্রথম আপনি একটি বিশেষ ইঙ্গিত-কোন চেকআউট সঙ্গে গিট সংগ্রহস্থল ক্লোন করতে হবে
git clone --no-checkout <git url>
  1. আপনি সঞ্চালনের জন্য পরবর্তী ধাপটি কমান্ডের সাথে রেপোতে অসংযত ফাইলগুলি পরিত্রাণ পেতে:
git reset
  1. এখন আপনি কমান্ডের সাথে যে ফাইলগুলি পরিবর্তন করতে চান তা টেনে আনতে আপনাকে অনুমতি দেওয়া হয়েছে:
git checkout origin/master <path to file>
  1. এখন রিপোজিটরি ফোল্ডারে এমন ফাইল রয়েছে যা আপনি সরাসরি সম্পাদনা করতে শুরু করতে পারেন। সম্পাদনা করার পরে আপনাকে কমান্ডগুলির প্লেইন এবং ফ্যামিলার ক্রম প্রয়োগ করতে হবে।
git add <path to file>
git commit -m <message text>
git push

এছাড়াও কিছু অতিরিক্ত তথ্যের জন্য একটি link দেখুন।


আপনি এটা করতে পারেন

git archive --format=tar --remote=origin HEAD | tar xf -
git archive --format=tar --remote=origin HEAD <file> | tar xf -

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

https://github.com/hubotio/hubot/blob/ed25584f/src/adapter.coffee

এখানে ed25584f SHA-1 হ্যাশের প্রথম 8 অক্ষর আগ্রহের প্রতিশ্রুতি অনুসরণ করে, উৎস ফাইলের পথ অনুসরণ করে।

Similary, বিটবકેટ আমরা চেষ্টা করতে পারেন:

https://bitbucket.org/cofarrell/stash-browse-code-plugin/src/06befe08

এই ক্ষেত্রে, আমরা উৎস URL এর শেষে সংঘটিত হ্যাশ স্থাপন করি।


ইতিমধ্যে দেওয়া হয়েছে কি দুটি রূপ:

git archive --format=tar --remote=git://git.foo.com/project.git HEAD:path/to/directory filename | tar -O -xf -

এবং:

git archive --format=zip --remote=git://git.foo.com/project.git HEAD:path/to/directory filename | funzip

এই স্ট্যান্ডার্ড আউটপুট ফাইল লিখুন।


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

 git clone /path/to/repo
 git clone git://url/of/repo
 git clone http://url/of/repo

গিট চেকআউট branch_or_version - পথ / ফাইল

উদাহরণ: git checkout HEAD -- main.c


জিআইটি কাজ 1.7.2.2

উদাহরণস্বরূপ আপনার শাখার শাখা 1 , শাখা 32 সহ কিছু দূরবর্তী রিমোট রয়েছে

তাই আপনি এই কমান্ড কল একটি নির্দিষ্ট ফাইল চেকআউট করতে:

git checkout remote/branch path/to/file

একটি উদাহরণ হিসাবে এটি ভালো কিছু হতে হবে

git checkout some_remote/branch32 conf/en/myscript.conf
git checkout some_remote/branch1 conf/fr/load.wav

এই চেকআউট কমান্ডটি পুরো ফাইলের গঠন conf / en এবং conf / fr কে বর্তমান ডিরেক্টরিতে অনুলিপি করবে যেখানে আপনি এই কমান্ডগুলি কল করবেন (অবশ্যই আমি অনুমান করেছি যে আপনি কিছু বিন্দুতে git init দৌড়েন)


ফাইল নাম 123.txt বলুন, এটি আমার জন্য কাজ করে:

git checkout --theirs  123.txt

যদি ফাইল একটি ডিরেক্টরি A ভিতরে থাকে, তবে এটি সঠিকভাবে উল্লেখ করতে ভুলবেন না:

git checkout --theirs  "A/123.txt"

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

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

সহজ!


রিমোট জিট রিপোজিটরি থেকে একটি নির্দিষ্ট শাখা থেকে একটি নির্দিষ্ট ফাইলের প্রয়োজন হলে কমান্ডটি হল:

git archive --remote=git://git.example.com/project.git refs/heads/mybranch path/to/myfile |tar xf -

বিশ্রামটি @ ভনস এর উত্তর থেকে প্রাপ্ত হতে পারে:

যদি আপনি মাস্টার শাখা থেকে একটি নির্দিষ্ট ফাইলের প্রয়োজন হয় তবে এটি হল:

git archive --remote=git://git.example.com/project.git HEAD path/to/myfile |tar xf -

আপনি ট্যাগ থেকে একটি নির্দিষ্ট ফাইল প্রয়োজন হলে:

git archive --remote=git://git.example.com/project.git mytag path/to/myfile |tar xf -

সাধারণত প্রথম উত্তর অনুসারে প্রস্তাবিত সমগ্র সংগ্রহস্থলটি ডাউনলোড না করেই জিট থেকে এক ফাইল ডাউনলোড করা সম্ভব নয়। এটি যেহেতু আপনি মনে করেন যে Git ফাইলগুলি সংরক্ষণ করে না (যেমন সিভিএস / এসভিএন করবেন), তবে এটি প্রকল্পটির সমগ্র ইতিহাসের ভিত্তিতে তাদের তৈরি করে।

কিন্তু নির্দিষ্ট ক্ষেত্রে কিছু workarounds আছে। নিচে দেখ:

GitHub

যদি এই ফাইলটি github.com এ থাকে, উদাহরণস্বরূপ চেষ্টা করুন:

wget https://raw.githubusercontent.com/user/project/master/README

GitWeb

আপনি যদি GitWeb সার্ভারে Git ব্যবহার করেন তবে আপনি উদাহরণস্বরূপ চেষ্টা করতে পারেন (সঠিক পথে পরিবর্তন করুন):

wget "http://example.com/gitweb/?p=example;a=blob_plain;f=README.txt;hb=HEAD"

Drupalcode.org এ GitWeb

উদাহরণ:

wget "http://drupalcode.org/project/ads.git/blob_plain/refs/heads/master:/README.md"

googlesource.com

একটি অনথিভুক্ত বৈশিষ্ট্য রয়েছে যা আপনাকে কাঁচা ফাইলগুলির বেস64-এনকোডেড সংস্করণ ডাউনলোড করতে দেয়:

curl "https://chromium.googlesource.com/chromium/src/net/+/master/http/transport_security_state_static.json?format=TEXT" | base64 --decode

অন্যান্য ক্ষেত্রে আপনার জিআইটি রিপোজিটরি কোন ওয়েব ইন্টারফেস ব্যবহার করছে কিনা তা পরীক্ষা করে দেখুন।

যদি এটি কোনও ওয়েব ইন্টারফেস ব্যবহার না করে, তবে আপনি আপনার Bitbucket বাইরের পরিষেবাদি যেমন GitHub , Bitbucket etc ধাক্কা দিতে বিবেচনা করতে পারেন। এবং একটি আয়না হিসাবে এটি ব্যবহার করুন।

যদি আপনি wget ইনস্টল না করেন, বিকল্পভাবে curl -O (url) চেষ্টা করুন।


এখন আমরা করতে পারি! এই গুগল প্রথম ফলাফল, আমি ভেবেছিলাম আমি এই সর্বশেষ আপডেট করতে আপডেট। গিট 1.7.9.5 এর আবির্ভাবের সাথে আমাদের কাছে git archive কমান্ড রয়েছে যা আপনাকে রিমোট হোস্ট থেকে একটি ফাইল উদ্ধার করতে দেয়।

git archive --remote=git://git.foo.com/project.git HEAD:path/in/repo filename | tar -x

এখানে সম্পূর্ণ উত্তর দেখুন https://.com/a/5324532/290784


জিটে আপনি তাদের আপডেট করার আগে 'চেকআউট' ফাইলগুলি নেন না - এটি এমনই মনে হয় যা আপনি পরে যাচ্ছেন।

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

একবার আপনি আপডেট ফাইল আপনি করতে পারেন:

git status

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

git add .

অথবা

git add blah.c

তারপরে git status আপনাকে দেখাবে যে কোন ফাইলগুলি সংশোধন করা হয়েছে এবং যা সূচীভুক্ত হয় তা যাচাই বা চেক ইন করতে প্রস্তুত।

সংগ্রহস্থল আপনার অনুলিপি ফাইল করতে:

git commit -a -m "commit message here"

ম্যানুয়াল এবং গাইড লিঙ্ক জন্য git ওয়েবসাইট দেখুন।






git-checkout