গিটে কী কেবল একটি ফাইল টানা সম্ভব?


177

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

আমি জানি আমি করতে পারি

git pull origin that_other_branch

তবে এটি প্রচুর অন্যান্য ফাইলগুলিকে একীভূত করার চেষ্টা করবে, এর জন্য আমি এখনও প্রস্তুত নই।

অন্য নির্দিষ্ট শাখা থেকে কেবল নির্দিষ্ট ফাইলটি (এবং সব কিছুই নয়) টানা এবং মার্জ করা সম্ভব?

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


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

উত্তর:


153

আপনি আনতে পারেন এবং তারপরে এই মাত্র একটি ফাইল পরীক্ষা করে দেখতে পারেন:

git fetch
git checkout -m <revision> <yourfilepath>
git add <yourfilepath>
git commit

git checkoutকমান্ডটি সম্পর্কে : <revision> - একটি শাখার নাম, অর্থাত্ origin/master <yourfilepath>সংগ্রহস্থলের নাম অন্তর্ভুক্ত করে না (যা আপনি copy pathগিটহাবের কোনও ফাইল পৃষ্ঠায় বাটন ক্লিক করে পেতে পারেন ), অর্থাৎREADME.md


23
-এম সুইচ দ্বারা প্রয়োজনীয় হ্যাশ কোডগুলি গিট শাখা -v দিয়ে মুদ্রণ করা যেতে পারে। অসাধারণ!
অড্রিয়াস মেসকাউস্কাস

2
চমৎকার। এটি একাধিক অনুষ্ঠানে আমাকে সহায়তা করেছে। স্পষ্ট করতে,-মি পতাকাটি আপনার একক ফাইলটি টানতে চান এমন প্রতিশ্রুতিটির হ্যাশ দিয়ে খুশি বলে মনে হচ্ছে।
rd108

1
এটি আমার পক্ষেও কাজ করেছিল। যদিও, আমি বিপরীতটি খুঁজে পেতে আমার দূরবর্তী শাখায় গিট লগ চালিয়েছি: উদাহরণস্বরূপ it গিট লগ রিমোটস / উত্স / মাস্টার
ড্যান

6
অন্যান্য ফাইলগুলি না টেনে নির্দিষ্ট ফাইলটি টানা সম্ভব?
ভাল লাগছে এবং প্রোগ্রামিং

3
@ রিলিজুট <রিভিশন> মানে কি?
ওয়াকান টানকা

240

এখানে গবেষণা করার সময় আমি সামান্য সহজ পদ্ধতিটি নিয়ে এসেছি:

git fetch {remote}
git checkout FETCH_HEAD -- {file}

4
মারাত্মক: অবৈধ রেফারেন্স: FETCH_HEAD
অ্যান্টনি

4
এই উত্তরে সম্ভবত একটি কার্যকারী উদাহরণ নেই। কারও কাছে প্রতিশ্রুতিবদ্ধ হওয়া দরকার কিনা তা অস্পষ্ট।
ডাঃ_জাসজুś

@ ক্রিস যদি আমাদের ইতিমধ্যে শাখায় থাকে তবে আমাদের কি {দূরবর্তী need দরকার? যদি হ্যাঁ, কেন?
মেঘ চো

2
টানার মতো নয়, যা একত্রীকরণের চেষ্টা করবে, এ কারণেই আমরা টান ব্যবহার করতে চাই।
জোসেফকে


16

@ মাওয়ার্দির উত্তর আমার পক্ষে কাজ করেছে তবে আমার পরিবর্তনগুলি রিমোটে ছিল তাই আমাকে মূলটি নির্দিষ্ট করতে হয়েছিল

git checkout origin/master -- {filename}

2

হ্যাঁ, প্রক্রিয়াটি এখানে:

# Navigate to a directory and initiate a local repository
git init        

# Add remote repository to be tracked for changes:   
git remote add origin https://github.com/username/repository_name.git

# Track all changes made on above remote repository
# This will show files on remote repository not available on local repository
git fetch

# Add file present in staging area for checkout
git check origin/master -m /path/to/file
# NOTE: /path/to/file is a relative path from repository_name
git add /path/to/file

# Verify track of file(s) being committed to local repository
git status

# Commit to local repository
git commit -m "commit message"

# You may perform a final check of the staging area again with git status
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.