যদি আমি চালনা করি তবে আমি git stash -u
অনতিযুক্ত ফাইলগুলি স্ট্যাশ করতে পারি। তবে, বলেছে যে অনতিযুক্ত ফাইলগুলি মোটেও প্রদর্শিত হয় না git stash show stash@{0}
। স্ট্যাশ প্রয়োগ না করে অবরুদ্ধ স্ট্যাশড ফাইলগুলি দেখানোর কোনও উপায় আছে কি?
যদি আমি চালনা করি তবে আমি git stash -u
অনতিযুক্ত ফাইলগুলি স্ট্যাশ করতে পারি। তবে, বলেছে যে অনতিযুক্ত ফাইলগুলি মোটেও প্রদর্শিত হয় না git stash show stash@{0}
। স্ট্যাশ প্রয়োগ না করে অবরুদ্ধ স্ট্যাশড ফাইলগুলি দেখানোর কোনও উপায় আছে কি?
উত্তর:
স্ট্র্যাচ কমিটের তৃতীয় পিতামাতার মধ্যে অবরুদ্ধ ফাইলগুলি সংরক্ষণ করা হয়। (এটি আসলে নথিভুক্ত নয়, তবে সেই প্রতিশ্রুতি থেকে স্পষ্টতই স্পষ্ট হয়েছে যা -u বৈশিষ্ট্যটি উপস্থাপন করেছে, 787513 ... এবং বাক্যাংশের বাক্যগুলির জন্য বাকী ডকুমেন্টেশনের git-stash
উপায়টি ... বা কেবল করে git log --graph stash@{0}
)
আপনি স্ট্যাশের কেবল "অচিহ্নযুক্ত" অংশটি এর মাধ্যমে দেখতে পারবেন:
git show stash@{0}^3
বা, কেবল "অচিহ্নযুক্ত" গাছ নিজেই, এর মাধ্যমে:
git show stash@{0}^3:
বা, গাছের মধ্যে একটি "নির্দিষ্ট চিহ্নবিহীন" ফাইল, এর মাধ্যমে:
git show stash@{0}^3:<path/to/file>
দুর্ভাগ্যক্রমে, সমস্ত পর্যায়বদ্ধ + আনস্টেজড + আনট্র্যাকড বনাম "বর্তমান" অবস্থার মধ্যে পার্থক্যের সংক্ষিপ্তসার পাওয়ার ভাল উপায় নেই। অর্থাত: git show stash@{0}
আনক্র্যাকড ফাইলগুলি অন্তর্ভুক্ত করার জন্য তৈরি করা যায় না। এটি কারণ হ'ল স্ট্যাশ গাছের বস্তু নিজেই প্রতিশ্রুতিবদ্ধ, হিসাবে উল্লেখ করা হয় stash@{0}:
, তৃতীয়, "অস্থির" পিতামাতার থেকে কোনও পরিবর্তন অন্তর্ভুক্ত করে না।
এটি স্ট্যাশগুলি পুনরায় প্রয়োগ করার কারণে ঘটে: ট্র্যাক করা ফাইলগুলি সহজেই প্যাচ হিসাবে প্রয়োগ করা যেতে পারে, তবে তালিকানবিহীন ফাইলগুলি কেবলমাত্র "পুরো ফাইলগুলি" হিসাবে তত্ত্ব হিসাবে প্রয়োগ করা যেতে পারে।
git log --graph --topo-order -m -u
। matthewlmcclure.com/s/2014/01/10/…
fatal: ambiguous argument 'stash@{0}^3': unknown revision or path not in the working tree.
) আপনি না আসলে যে লুকোবার জায়গা মধ্যে untracked ফাইল আছে (কিন্তু ভেবেছিলাম তুমি করেনি)।
git stash show
নেই না untracked ফাইল (অন্তত Git 2.7.4 জন্য সত্য) দেন:
git stash pop
প্রথমে অবিরত ফাইলগুলি পুনরুদ্ধার করার চেষ্টা করবে এবং তারপরে ট্র্যাক করা ফাইল পুনরুদ্ধারের চেষ্টা করবে। যদি পরবর্তী অপারেশন ব্যর্থ হয় (উদাহরণস্বরূপ দ্বন্দ্ব), প্রথম অপারেশনটি রোলড-ব্যাক হয় না (ফাইলগুলি ডিস্ক থেকে সরানো হয় না তবে অবিরত-ফাইল-স্ট্যাশ থাকবে) তবে আপনি বিরোধটি স্থির করে নিলেও পরবর্তী পপ ব্যর্থ হবে যাইহোক।
আপনি নিম্নলিখিত আদেশটি দিয়ে সমস্ত স্ট্যাশ কমিটের তালিকা করতে পারেন:
git rev-list -g stash
যেহেতু স্ট্যাশগুলি হেড, ইনডেক্সের 3-উপায়ে মার্জ কমিট হিসাবে উপস্থাপিত হয় এবং অবিরত ফাইলগুলির প্যারেন্ট-কম "রুট" কমিট হিসাবে চিহ্নিত হয় না, ততোধিক ফাইল স্ট্যাশগুলি উপরের আউটপুটটি নীচে পাইপ করে তালিকাভুক্ত করা যায়:
git rev-list -g stash | git rev-list --stdin --max-parents=0
উপরের দরকারী অ্যাপ্লিকেশন:
git rev-list -g stash | git rev-list --stdin --max-parents=0 | xargs git show --stat
অবশ্যই, --stat
ফাইলগুলির বিষয়বস্তু দেখতে অপসারণ করুন ।
git rev-list -g stash | xargs -n1 git ls-tree -r | sort -u | grep <pattern>
git rev-list -g stash | git rev-list --stdin --max-parents=0 | xargs git grep <pattern>
git rev-list -g stash | git rev-list --stdin | xargs git show --stat
Find a specific file
কমান্ডটি ব্যবহার করি , আমি উদাহরণস্বরূপ পাই: 100644 blob 05e25619a6f2649b7d635b5aa897cbfc68a4f15d widget/app.css
এখন আমি কীভাবে এই পরিবর্তনগুলি পপ করতে পারি? (কোন স্ট্যাশ এতে রয়েছে তা আমি নিশ্চিত নই)
git show 05e25619a6f2649b7d635b5aa897cbfc68a4f15d > widget/app.css
। ( widget/
ডিরেক্টরিটি অবশ্যই উপস্থিত থাকতে হবে, সুতরাং এটি git checkout
কোনও পথস্পেক ব্যবহার করার মতো সুবিধাজনক নয় ))
স্ট্যাশ-এ অনতিযুক্ত ফাইলগুলি তালিকাভুক্ত করতে:
git ls-tree -r stash@{0}^3 --name-only
সমস্ত চিহ্নবিহীন ফাইলের (সম্পূর্ণ সামগ্রী সহ) সম্পূর্ণ আলাদা দেখানোর জন্য:
git show stash@{0}^3
এই কমান্ডগুলি সর্বশেষ (অতি সাম্প্রতিক) স্ট্যাশ পড়বে। পূর্ববর্তী স্ট্যাশগুলির জন্য, "স্ট্যাশ @" এর পিছনে সংখ্যা বৃদ্ধি করুন, উদাহরণস্বরূপ stash@{2}
শেষ স্ট্যাশ থেকে দ্বিতীয়টির জন্য।
কারণ এই কাজ যে git stash
কোনো মার্জ প্রতিটি লুকোবার জায়গা, যা উল্লেখ করা করা যেতে পারে কমিট সৃষ্টি stash@{0}
, stash@{1}
ইত্যাদি এই প্রথম পিতা বা মাতা কমিট লুকোবার জায়গা সময় মাথা, দ্বিতীয় পিতা বা মাতা ট্র্যাক ফাইলগুলিতে পরিবর্তন রয়েছে এবং তৃতীয় (যা নাও থাকতে পারে) অচিহ্নযুক্ত ফাইলগুলিতে পরিবর্তন।
এটি "আলোচনা" এর অধীনে ম্যানপেজে আংশিকভাবে ব্যাখ্যা করা হয়েছে ।
স্ট্যাশ-এর সমস্ত ফাইলগুলি দেখতে (উভয়ই ট্র্যাকড এবং তালাবিহীন), আমি এই কনফিগারেশনটি আমার কনফিগারেশনে যুক্ত করেছি:
showstash = "!if test -z $1; then set -- 0; fi; git show --stat stash@{$1} && git show --stat stash@{$1}^3 2>/dev/null || echo No untracked files -"
আপনি কোন স্ট্যাশ দেখতে চান তার একক যুক্তি লাগে । নোট করুন এটি এখনও এটি দুটি পিছনে পিছনে তালিকার মধ্যে উপস্থিত হবে।
if...fi
অধ্যায় ব্যাশ যুক্তি পরিবর্তন $ 1 0 যদি কেউ পাস হয়।
একটি কার্যনির্বাহী: স্ট্যাশ করার আগে ফাইলগুলি স্টেজিং git stash show -p
করা প্রত্যাশা অনুযায়ী কাজ করবে।
git add .
git stash save
দ্রষ্টব্য: এই উপায়টি ইন্টারেক্টিভ অংশগুলি যুক্ত করার ক্ষমতাও দেয়, কীভাবে তা এখানে ।
সতর্কতা: নিশ্চিত করুন যে আপনার আগে কাজ মঞ্চায়িত হয়নি, বা আপনি এটি আলাদা করতে সক্ষম হবেন না।
এটি ব্যবহার হতে পারে।
git stash show
ওয়ার্কিং কপি এবং # 1 (git-stash.sh এর প্রাসঙ্গিক কোড:git diff ${FLAGS:---stat} $b_commit $w_commit
যার মধ্যে $ বি_কমিট # 1 এবং $ ডাব্লু_কমিট হ'ল স্ট্যাশ কমিট) এর মধ্যে পার্থক্য দেখায়;git stash show
# 3 অন্তর্ভুক্ত করার জন্য কি কোনও অন্তর্নির্মিত উপায় আছে?