গিটের সার্ভার সংগ্রহস্থল থেকে কীভাবে একটি একক ফাইল টানবেন?


114

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

সার্ভার থেকে আমি কীভাবে একটি ফাইল আনতে পারি? উদাহরণস্বরূপ, আমি যদি আমার স্থানীয় ফাইল index.php আপডেট করতে চাই? git pull index.php?



উত্তর:


194

এটি করা সম্ভব (মোতায়েন করা ভান্ডারে):

git fetch
// git fetch will download all the recent changes, but it will not put it in your current checked out code (working area).

অনুসরণ করেছেন:

git checkout origin/master -- path/to/file
// git checkout <local repo name (default is origin)>/<branch name> -- path/to/file will checkout the particular file from the downloaded changes (origin/master).

1
ধন্যবাদ. সুতরাং আপনি কি বলতে চাচ্ছেন <revision>? ফাইলের নাম? যদি আমার ফাইল রুট ডিরেক্টরি মধ্যে যে অর্থ হবে আমি টাইপ করতে হবে: git checkout -m index.php index.php?
vsvs

ব্যাখ্যা করার জন্য আপনাকে ধন্যবাদ.
vsvs

এটি হতে পারে *origin*/masterবা এটি কোনও দূরবর্তী থেকে হতে পারে? পুরো ইতিহাসটি কি আমার রেপোতে টানছে বা ফাইলটি যাদুকরীভাবে প্রদর্শিত হচ্ছে বলে মনে হচ্ছে?
বার্নহার্ড ডাবলার

যদি আপনি এই ত্রুটিটি পান "গিট হিসাবে পরিচিত কোনও ফাইল (গুলি) এর সাথে মেলে না": "পাথ / টু / ফাইল" গিটহাবের ফাইল অবস্থান থেকে আপনি যে পাথটি পেয়েছেন তার অনুলিপি হওয়া উচিত নয়, যার অর্থ "repoName / fileName" , আপনার "repoName /" থেকে মুক্তি পাওয়া উচিত এবং তারপরে এটি কার্যকর হবে।
এডুয়ার্ড

1
@ বার্নহার্ডডাবিলার এটি রিমোট থেকে যে কোনও শাখা হতে পারে :)
ক্রিসমিল্লাহ

27
git fetch --all
git checkout origin/master -- <your_file_path>
git add <your_file_path>
git commit -m "<your_file_name> updated"

এটি ধরে নেওয়া হচ্ছে আপনি উত্স / মাস্টার থেকে ফাইলটি টানছেন।



5

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

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

git reset --hard HEADআগ্রহের ফাইলটি পুনরুদ্ধার করার একটি বিকল্প উপায় এটি আপনার যে কোনও অনিচ্ছাকৃত পরিবর্তনকে দূরে সরিয়ে দেয়। তবে, যেমন এখানে উল্লেখ করা হয়েছে , গিট রিসেট হ'ল একটি সম্ভাব্য বিপজ্জনক আদেশ হ'ল যদি আপনার যত্ন নেওয়া অন্য কোনও অনির্ধারিত পরিবর্তন থাকে have

git fetch ... git checkoutকৌশল @chrismillah দ্বারা উপরে উল্লিখিত প্রশ্নে ফাইল পুনরুদ্ধার করতে একটা চমৎকার অস্ত্রোপচার উপায়।


1
অন্যদের মতামতের চেয়ে অনেক বেশি গুপ্তচর। আপনাকে ধন্যবাদ
Thecave3

3

আমি কিছুটা আলাদা টাস্কের সন্ধান করছিলাম তবে আপনি যা চান তা দেখতে এটির মতো দেখাচ্ছে:

git archive --remote=$REPO_URL HEAD:$DIR_NAME -- $FILE_NAME |
tar xO > /where/you/want/to/have.it

আমি বলতে চাচ্ছি, আপনি যদি আনতে চান path/to/file.xz, আপনি সেট হবে DIR_NAMEথেকে path/toএবং FILE_NAMEথেকে file.xz। সুতরাং, আপনি কিছু এর মত শেষ হবে

git archive --remote=$REPO_URL HEAD:path/to -- file.xz |
tar xO > /where/you/want/to/have.it

এবং tar xOঅবশ্যই আপনাকে অবশ্যই অন্য যেকোন ধরণের আনপ্যাকিং থেকে বিরত রাখবে না (হ্যাঁ, এখানে আমাকে পাইপ লাগানো দরকার ছিল)।


1

ব্যবহার করার চেষ্টা করুন:

git checkout branchName -- fileName

উদা:

git checkout master -- index.php

2
মনোযোগ দিন: "গিট চেকআউট মাস্টার - index.php" এটি সার্ভার থেকে চেকআউট করে না, তবে শেষ টান থেকে স্থানীয় গিট ডাটাবেস থেকে।
রবার্তো নোভাকস্কি

1
https://raw.githubusercontent.com/[USER-NAME]/[REPOSITORY-NAME]/[BRANCH-NAME]/[FILE-PATH]

যাত্রা। https://raw.githubusercontent.com/vipinbihari/apana-result/master/index.php

এর মাধ্যমে আপনি একটি পৃথক ফাইলের সামগ্রীগুলি একটি সারি পাঠ্য হিসাবে পাবেন। আপনি এই টেক্সটটি উইজেটের সাথে ডাউনলোড করতে পারেন।

যাত্রা। https://raw.githubusercontent.com/vipinbihari/apana-result/master/index.php


ওপি বিশেষত প্রশ্নে ইঙ্গিত করেছে যে তিনি গিথুব ব্যবহার করছেন না।
জিটুইনেটর

0

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

sparse_checkout.bat

pushd "%~dp0"
if not exist .\ms-server-essentials-docs mkdir .\ms-server-essentials-docs
pushd .\ms-server-essentials-docs
git init
git remote add origin -f https://github.com/MicrosoftDocs/windowsserverdocs.git
git config core.sparseCheckout true
(echo EssentialsDocs)>>.git\info\sparse-checkout
git pull origin master

=>

সি: \ ব্যবহারকারীগণ \ ব্যবহারকারীর নাম \ ডেস্কটপ> sparse_checkout.bat

সি: \ ব্যবহারকারী \ ব্যবহারকারীর নাম \ ডেস্কটপ> "সি: \ ব্যবহারকারী \ ব্যবহারকারীর নাম \ ডেস্কটপ \"

সি: \ ব্যবহারকারীদের \ ব্যবহারকারীর নাম \ ডেস্কটপ> অস্তিত্ব না থাকলে। এমএস-সার্ভার-এসেনশিয়ালস-ডকস এমকেডির \ এমএস-সার্ভার-এসেনশিয়ালস-ডকস

সি: \ ব্যবহারকারীগণের ব্যবহারকারীর নাম ডেস্কটপ> পুশ্ড। এমএস-সার্ভার-প্রয়োজনীয়-ডকস

সি: \ ব্যবহারকারী \ ব্যবহারকারীর নাম \ ডেস্কটপ \ এমএস-সার্ভার-এসেনশিয়ালস-ডকস> গিট টি সি-তে খালি গিট সংগ্রহস্থল শুরু হয়েছে: / ব্যবহারকারী / ব্যবহারকারীর নাম / ডেস্কটপ / এমএস-সার্ভার-প্রয়োজনীয়-নথি / .git /

সি: \ ব্যবহারকারী \ ব্যবহারকারীর নাম \ ডেস্কটপ \ এমএস-সার্ভার-এসেনশিয়ালস-ডকস> গিট রিমোট অ্যাড অরিজিন -f https://github.com/Mic MicrosoftDocs/windowsserverdocs.git উত্সের রিমোট আপডেট করা হচ্ছে: গণনা অবজেক্টস: 97, সম্পন্ন হয়েছে। দূরবর্তী: গণনা অবজেক্টস: 100% (97/97), সম্পন্ন হয়েছে। রিমোট: কম্প্রেসিং অবজেক্টস: 100% (44/44), সম্পন্ন হয়েছে। রিমোট: মোট 145517 (ডেল্টা 63), পুনঃব্যবহৃত 76 (ডেল্টা 53), প্যাক-পুনঃব্যবহার 145420 প্রাপ্তি অবজেক্টস: 100% (145517/145517), 751.33 মাইবি | 32.06 এমআইবি / গুলি, সম্পন্ন। সমাধান ডেল্টাস: 100% (102110/102110), সম্পন্ন হয়েছে। থেকে https://github.com/MicrosoftDocs/windowsserverdocs * [নতুন শাখা]
1106-দ্বন্দ্ব -> উৎপত্তি / 1106-দ্বন্দ্ব * [নতুন শাখা]
FromPrivateRepo -> উৎপত্তি / FromPrivateRepo * [নতুন শাখা]
PR183 -> উৎপত্তি / PR183 * [নতুন শাখা]
সংঘাতের -> উত্স / সংঘর্ষ * [নতুন শাখা]
ইরোস-এমএসএফটি-প্যাচ -১ -> উত্স / ইরোস-এমএসএফটি-প্যাচ -১ * [নতুন শাখা]
মাস্টার -> উত্স / মাস্টার * [নতুন শাখা] প্যাচ -১
-> মূল / প্যাচ-1 * [নতুন শাখা] repo_sync_working_branch -> উৎপত্তি / repo_sync_working_branch * [নতুন শাখা]
shortpatti-প্যাচ -1 -> উৎপত্তি / shortpatti-প্যাচ-1 * [নতুন শাখা]
shortpatti-প্যাচ-2 -> উৎপত্তি / shortpatti -প্যাচ -২ * [নতুন শাখা]
শর্টপট্টি-প্যাচ -৩ -> উত্স / শর্টপট্টি-প্যাচ -৩ * [নতুন শাখা]
শর্টপট্টি-প্যাচ -৪ -> উত্স / শর্টপট্টি-প্যাচ -৪ * [নতুন শাখা]
শর্টপট্টি-প্যাচ -5 -> উত্স / শর্টপট্টি-প্যাচ -৫ * [নতুন শাখা]
শর্টপট্টি-প্যাচ-6 -> উত্স / শর্টপট্টি-প্যাচ-6 * [নতুন শাখা]
শর্টপট্টি-প্যাচ-7 -> উত্স / শর্টপট্টি-প্যাচ-7 * [নতুন শাখা]
শর্টপট্টি-প্যাচ -৮ -> উত্স / শর্টপট্টি-প্যাচ -৮

সি: \ ব্যবহারকারী \ ব্যবহারকারীর নাম \ ডেস্কটপ \ এমএস-সার্ভার-এসেনশিয়ালস-ডকস> গিট কনফিগারেশন কোর.স্পারস চেকআউট সত্য

সি: \ ব্যবহারকারী \ ব্যবহারকারীর নাম \ ডেস্কটপ \ এমএস-সার্ভার-এসেনশিয়ালস-ডকস> (প্রতিধ্বনি এসেন্সিয়ালডোকস) 1 >>। গিট \ তথ্য \ স্পার্স-চেকআউট

সি: \ ব্যবহারকারীদের \ ব্যবহারকারীর নাম \ ডেস্কটপ \ এমএস-সার্ভার- এসেনশিয়ালস -ডকস> গিট পুল অরিজিনাল মাস্টার https://github.com/Mic MicrosoftDocs/windowsserverdocs
থেকে * শাখা মাস্টার -> FETCH_HEAD

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