වෙනත් තැනක පවසා ඇති පරිදි, පිළිතුර 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
[සටහන: @mancocapac වෙතින් අදහස් දැක්වීමක සඳහන් කර ඇති පරිදි, ඔබට විධානයට එක් --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
ප්රතිලාභ කිසිවක් නොලැබෙන අතර ඔබ එය අතහැර දැමීමට පෙළඹෙනු ඇත (මා මීට මාස කිහිපයකට පෙර ලියූ ප්රයෝජනවත් පිටපතක් එහි තිබියදීත් කළාක් මෙන්) → වූ පහත වැටී මැට්ටෙක් අයකර ගැනීමට ආකාරය )