আমি আমার পরিবর্তনগুলি স্থির করে দিয়েছি। এখন আমি স্ট্যাশ থেকে কিছু ফাইল আনস্টাশ করতে চাই। কিভাবে আমি এটি করতে পারব?
আমি আমার পরিবর্তনগুলি স্থির করে দিয়েছি। এখন আমি স্ট্যাশ থেকে কিছু ফাইল আনস্টাশ করতে চাই। কিভাবে আমি এটি করতে পারব?
উত্তর:
যেমনটি নীচে উল্লিখিত হয়েছে এবং " আমি গিট স্ট্যাশ থেকে কীভাবে একটি একক ফাইল (বা কোনও ফাইলের পরিবর্তন) আনব ? " এ বিশদভাবে আপনি ব্যবহার প্রয়োগ করতে পারেন git checkout
বা git show
একটি নির্দিষ্ট ফাইল পুনরুদ্ধার করতে পারেন ।
git checkout stash@{0} -- <filename>
এটি ওভাররাইট করে filename
: নিশ্চিত হয়ে নিন যে আপনার কাছে স্থানীয় পরিবর্তন নেই, অথবা আপনি পরিবর্তে স্ট্যাশ করা ফাইলটি মার্জ করতে চাইতে পারেন ।
( জাইম এম- এর মন্তব্য অনুসারে, টিসিএস-এর মতো নির্দিষ্ট শেলের জন্য যেখানে আপনাকে বিশেষ চরিত্রগুলি থেকে বাঁচতে হবে, বাক্য গঠনটি হবে git checkout 'stash@{0}' -- <filename>
:)
বা অন্য ফাইলের নামে এটি সংরক্ষণ করতে:
git show stash@{0}:<full filename> > <newfile>
(মনে রাখবেন যে এখানে
<full filename>
একটি প্রকল্পের শীর্ষ ডিরেক্টরি সম্পর্কিত (ফাইলটি সম্পর্কিত মনে করুন: সম্পর্কিতstash@{0}
)) path
ইউসার মন্তব্যগুলিতে পরামর্শ দেয় :
আপনি যদি সেই ফাইলটি থেকে ম্যানুয়ালি কোন পরিবর্তনগুলি প্রয়োগ করতে চান তা নির্বাচন করতে চান:
git difftool stash@{0}..HEAD -- <filename>
বিবেক মন্তব্যগুলিতে যোগ করেছেন :
দেখে মনে হচ্ছে "
git checkout stash@{0} -- <filename>
" স্ট্যাশ সঞ্চালনের সময় হিসাবে ফাইলটির সংস্করণটি পুনরুদ্ধার করে - এটি ফাইলের স্ট্যাশড পরিবর্তনগুলি প্রয়োগ করে না (কেবল)।
পরেরটি করতে:
git diff stash@{0}^1 stash@{0} -- <filename> | git apply
( পিটারফ্লিন দ্বারা মন্তব্য করা হিসাবে , আপনার | git apply -p1
কিছু ক্ষেত্রে প্রয়োজন হতে পারে, ( তিহ্যগত বিভিন্ন p1
পথ থেকে একটি ) স্ল্যাশ সরিয়ে)
মন্তব্য হিসাবে: "আনস্ট্যাশ" ( git stash pop
), তারপরে:
git add
)git stash --keep-index
শেষ পয়েন্টটি আপনাকে অন্যদের স্ট্যাশ করার সময় কিছু ফাইল রাখার অনুমতি দেয়।
এটি রূপান্তরিত হয়েছে " পরিবর্তিত একাধিক ফাইলের মধ্যে কেবল একটি ফাইল কীভাবে স্ট্যাশ করা যায় "।
git stash pop
আপনি ফাইল দ্বন্দ্বের কারণে না পারলে এটি কাজ করে না । বালামুরুগান এ এর উত্তরটি আমার ক্ষেত্রে সেই কৌশলটি করেছিল।
unstash
উপায়ে pop
, যেমন আমার মনে হচ্ছে যে এটি সম্ভবত would বেশিরভাগ ক্ষেত্রেই, এই শুধুমাত্র আংশিকভাবে প্রশ্নের উত্তর। পরবর্তী পরিবর্তনগুলি এবং / বা বাকী পরিবর্তনগুলি পপ করার সময় সংঘাত এবং / বা বিভ্রান্তি এড়াতে আপনি কীভাবে স্ট্যাশ থেকে বেছে বেছে প্রয়োগ করা টুকরোগুলি সরিয়ে ফেলবেন?
git checkout stash@{N} <File(s)/Folder(s) path>
যেমন। সর্বশেষ স্ট্যাশ করা থেকে কেবল।
git checkout stash@{0} ./test.c ./include
-a
স্ট্যাশ তৈরির সময় আমি পতাকা ব্যবহার করেছি এটিতে আমি আটকে গিয়েছিলাম ।
আমি মনে করি ভনকের উত্তর সম্ভবত আপনি যা চান, তবে একটি নির্বাচনী "গিট প্রয়োগ" করার একটি উপায় এখানে রয়েছে:
git show stash@{0}:MyFile.txt > MyFile.txt
checkout
কোনও কিছুর যত্ন নেয় না ।
git show stash@`{0`}:Path/To/MyFile.txt |sc Path/To/MyFile.txt
- পিএসের জন্য বিশেষত ধনুর্বন্ধনীগুলির ব্যাখ্যা না করার জন্য ব্যাকটিকগুলি প্রয়োজনীয় এবং এটি sc
প্রয়োজনীয় কারণ পিএস-র >
অপারেটরটি ইউটিএফ -16 (আসলে ইউসিএস -2) এর ডিফল্ট হয় যা সম্ভবত আপনি চান না। @ বালামুরুগান এ এর উত্তর এই সমস্যাগুলিতে ভোগেনা।
প্রথমে সমস্ত স্ট্যাসের তালিকা করুন
git stash list
↓
stash@{0}: WIP on Produktkonfigurator: 132c06a5 Cursor bei glyphicon plus und close zu zeigende Hand ändern
stash@{1}: WIP on Produktkonfigurator: 132c06a5 Cursor bei glyphicon plus und close zu zeigende Hand ändern
stash@{2}: WIP on master: 7e450c81 Merge branch 'Offlineseite'
তারপরে কোন ফাইলগুলি স্ট্যাশে রয়েছে তা দেখান (আসুন স্ট্যাশ 1 বেছে নিন):
git stash show 1 --name-only
//Hint: you can also write
//git stash show stash@{1} --name-only
↓
ajax/product.php
ajax/productPrice.php
errors/Company/js/offlineMain.phtml
errors/Company/mage.php
errors/Company/page.phtml
js/konfigurator/konfigurator.js
তারপরে আপনার পছন্দ মতো ফাইলটি প্রয়োগ করুন:
git checkout stash@{1} -- <filename>
বা পুরো ফোল্ডার:
git checkout stash@{1} /errors
এটি ছাড়াও কাজ করে --
তবে সেগুলি ব্যবহার করার পরামর্শ দেওয়া হয়। এই পোস্টটি দেখুন ।
বিকল্প ব্যাখ্যা থামাতে এবং নিম্নলিখিত সমস্ত যুক্তিগুলিকে অক্ষরে অক্ষরে আচরণ করার জন্য একটি ডাবল হাইফেনকে সংকেত হিসাবে স্বীকৃতি দেওয়াও প্রচলিত।
git stash pop
অনতিযুক্ত ফাইলের জন্য একটি ত্রুটি ফেলেছে। ধন্যবাদ.
আপনি যদি git stash pop
(কোনও বিবাদ ছাড়াই) এটি প্রয়োগ করার পরে এটি স্ট্যাশ সরিয়ে ফেলবেন। তবে আপনি যদি git stash apply
তা স্ট্যাশ তালিকা থেকে সরিয়ে না ফেলে প্যাচটি প্রয়োগ করবেন। তারপরে আপনি এর সাথে অযাচিত পরিবর্তনগুলি ফিরিয়ে আনতে পারেনgit checkout -- files...
git stash pop
এবং সেখানে দ্বন্দ্ব থাকলে, আপনাকে সেগুলি ম্যানুয়ালি ঠিক করতে হবে এবং স্ট্যাশ সরানো হবে না।
আরও একটি উপায়:
git diff stash@{N}^! -- path/to/file1 path/to/file2 | git apply -R
checkout
বা show
অন্ধ শুধু আবেদন পরিবর্তনের আপনার ফাইল ওভাররাইট করবে পরিবর্তে। "আরও একটি উপায়" হ'ল একটি আন্ডারস্টেটমেন্ট।
path/to/file2
আপনার ওয়ার্কস্পেসের একই ফাইলের তুলনায় আপনি যেভাবে আলাদা করতে চান তা পাচ্ছি না । দ্বিতীয় পথ ছেড়ে যাওয়া আমার পক্ষে ভাল কাজ করে। - এবং আমি -R
বিকল্পটি ব্যবহার করে একটি ত্রুটি বার্তা পেয়েছি ("বিপরীতে প্যাচ প্রয়োগ করুন", স্ট্যাশড সংস্করণটি প্যাচ করার চেষ্টা করছেন ?!)। আমার ওয়ার্কিং ভার্সনটি দেখে মনে হচ্ছে git diff stash@{N}^! -- path/to/file | git apply -
।
...| git apply -3 -
উইন্ডোজ ব্যবহারকারীদের জন্য: কোঁকড়ানো ধনুর্বন্ধনী এর পাওয়ারসেলের বিশেষ অর্থ রয়েছে। আপনি হয় একক উদ্ধৃতি দিয়ে ঘিরে বা ব্যাকটিক দিয়ে পালাতে পারেন। উদাহরণ স্বরূপ:
git checkout 'stash@{0}' YourFile
এটি ছাড়া, আপনি একটি ত্রুটি পেতে পারেন:
Unknown switch 'e'