যেমনটি অন্য কোথাও বলা হয়েছে, git add
ফাইলটির উত্তর । উদাহরণ:
git add path/to/untracked-file
git stash
তবে, প্রশ্নটি আরও একটি উত্তরে উত্থাপিত হয়েছে: আপনি যদি সত্যিই ফাইলটি যুক্ত করতে না চান তবে কী হবে? ঠিক আছে, আমি যতদূর বলতে পারি, আপনার দরকার আছে। এবং নিম্নলিখিতগুলি কাজ করবে না :
git add -N path/to/untracked/file # note: -N is short for --intent-to-add
git stash
এটি নিম্নলিখিত হিসাবে ব্যর্থ হবে:
path/to/untracked-file: not added yet
fatal: git-write-tree: error building trees
Cannot save the current index state
তো তুমি কি করতে পার? ঠিক আছে, আপনাকে ফাইলটি সত্যই যুক্ত করতে হবে, তবে আপনি কার্যকরভাবে পরে এটি আন-এড করতে পারেন git rm --cached
:
git add path/to/untracked-file
git stash save "don't forget to un-add path/to/untracked-file" # stash w/reminder
# do some other work
git stash list
# shows:
# stash@{0}: On master: don't forget to un-add path/to/untracked-file
git stash pop # or apply instead of pop, to keep the stash available
git rm --cached path/to/untracked-file
এবং তারপরে আপনি একই অবস্থায় কাজ চালিয়ে যেতে পারেন git add
(যেমন একটি কলবিহীন ফাইল বলা হয় path/to/untracked-file
; এছাড়াও আপনাকে ট্র্যাক করা ফাইল থাকতে পারে অন্য কোনও পরিবর্তন)।
এটির উপর একটি কার্যপ্রবাহের জন্য আরেকটি সম্ভাবনা হ'ল:
git ls-files -o > files-to-untrack
git add `cat files-to-untrack` # note: files-to-untrack will be listed, itself!
git stash
# do some work
git stash pop
git rm --cached `cat files-to-untrack`
rm files-to-untrack
[দ্রষ্টব্য: @ মানকোক্যাপ্যাকের একটি মন্তব্যে যেমন উল্লেখ করা হয়েছে, আপনি কমান্ডটিতে যোগ --exclude-standard
করতে git ls-files
পারেন (তাই, git ls-files -o --exclude-standard
)।
... যা সহজে স্ক্রিপ্টও করা যেতে পারে - এমনকি এলিয়াসগুলিও করত (zsh সিনট্যাক্সে উপস্থাপিত হয়; প্রয়োজনমতো সামঞ্জস্য হয়) [এছাড়াও, আমি ফাইলের নামটি সংক্ষিপ্ত করে রেখেছি যাতে এই উত্তরটিতে কোনও স্ক্রোল না করেই সমস্ত পর্দায় ফিট করে; আপনার পছন্দের বিকল্প ফাইল নামটি নির্দ্বিধায় মনে করুন]:
alias stashall='git ls-files -o > .gftu; git add `cat .gftu`; git stash'
alias unstashall='git stash pop; git rm --cached `cat .gftu`; rm .gftu'
মনে রাখবেন যে শেল স্ক্রিপ্ট বা ফাংশন হিসাবে পরেরটি আরও ভাল হতে পারে, প্যারামিটারগুলি সরবরাহ করা যেতে পারে তবে git stash
আপনি না চান pop
তবে apply
, এবং / অথবা কেবল শীর্ষে না গিয়ে নির্দিষ্ট স্ট্যাশ নির্দিষ্ট করতে সক্ষম হতে চান এক. সম্ভবত এটি (উপরের দ্বিতীয় উপনামের পরিবর্তে) [সাদা স্কেসটি কোনও স্ক্রোল না করে ফিট করার জন্য ছিটকে গেছে; বর্ধিত স্বচ্ছতার জন্য পুনরায় যুক্ত করুন]:
function unstashall(){git stash "${@:-pop}";git rm --cached `cat .gftu`;rm .gftu}
নোট : এই ফর্ম, আপনি শনাক্তকারী সেইসাথে একটি কর্ম যুক্তি সরবরাহ আপনি একটি লুকোবার জায়গা আইডেন্টিফায়ার সরবরাহ, যেমন চলুন যদি প্রয়োজন unstashall apply stash@{1}
বাunstashall pop stash@{1}
কোনটি অবশ্যই আপনি .zshrc
দীর্ঘমেয়াদে তৈরি করতে সমতুল্য বা তার সমতুল্য রাখবেন।
আশা করি এই উত্তরটি কারও পক্ষে সহায়ক, সমস্ত কিছুকে একটি উত্তরে রেখে দেওয়া।
git stash show
কোনও কিছুই প্রত্যাবর্তন করে না এবং আপনি এটি ফেলে দেওয়ার প্রলোভনেও পড়তে পারেন (যেমন আমি এটি কিছুক্ষণ আগে লিখেছিলাম একটি দরকারী স্ক্রিপ্ট রয়েছে Dropped কীভাবে বাদ পড়ে যাওয়া স্ট্যাশ পুনরুদ্ধার করবেন )