මෙය හැසිරවීමේ ක්රම දෙකක් තිබේ. වඩා පහසු වන්නේ ඔබේ තත්වය මත ය
නැවත සකසන්න
ඔබට ඉවත් කිරීමට අවශ්ය කැපවීම අවසාන කැපවීම නම්, ඔබට සරලව භාවිතා කළ හැකි අමතර වැඩ කිසිවක් කර නොමැති නම් git-reset
git reset HEAD^
ඔබගේ වර්තමාන හෙඩ්ට පෙර ඔබේ ශාඛාව නැවත බැඳීමට ගෙන යයි. කෙසේ වෙතත්, එය ඇත්ත වශයෙන්ම ඔබගේ වැඩ කරන ගසෙහි ගොනු වෙනස් නොකරයි. එහි ප්රති As ලයක් වශයෙන්, එම කැපවීමෙහි සිදු වූ වෙනස්කම් නවීකරණය කරන ලද ඒවා ලෙස පෙනේ - එය 'අවිධිමත්' විධානයක් වැනි ය. ඇත්ත වශයෙන්ම, මට එය කිරීමට අන්වර්ථයක් ඇත.
git config --global alias.uncommit 'reset HEAD^'
එවිට ඔබට git uncommit
අනාගතයේදී එක් කැපවීමක් උපස්ථ කිරීමට භාවිතා කළ හැකිය .
ස්කොෂ් කිරීම
බැඳීමක් කොටු කිරීම යන්නෙන් අදහස් කරන්නේ දෙකක් හෝ වැඩි ගණනක් එකකට ඒකාබද්ධ කිරීමයි. මම මෙය බොහෝ විට කරන්නෙමි. ඔබගේ නඩුවේදී ඔබ අඩක් කළ අංගයක් කැප කර ඇති අතර, පසුව ඔබ එය අවසන් කර නිසි ස්ථිර කැපවීමේ පණිවිඩයක් සමඟ නැවත කැප වනු ඇත.
git rebase -i <ref>
මා ඉහත කියන්නේ මට පැහැදිලි කිරීමට අවශ්ය නිසා මෙය නැවත කළ හැකි ගණනක් විය හැකි බවයි. ධාවනය git log
කර ඔබට ඉවත් කිරීමට අවශ්ය කැපවීම සොයා ගන්න, එහි SHA1 පිටපත් කර එය වෙනුවට භාවිතා කරන්න <ref>
. Git ඔබව අන්තර්ක්රියාකාරී නැවත සැකසීමේ ක්රමයට ගෙන යනු ඇත. එය ඔබගේ වර්තමාන තත්වය සහ ඔබ වෙනුවට තබන ඕනෑම දෙයක් අතර ඇති සියලු බැඳීම් පෙන්වනු ඇත <ref>
. කොමිස් <ref>
10 කට පෙර නම්, එය ඔබට කොමිස් 10 ම පෙන්වනු ඇත.
එක් එක් බැඳීම ඉදිරිපිට, එය වචනය pick
ඇත. ඔබට ඉවත් කිරීමට අවශ්ය කැපවීම සොයාගෙන එය සිට හෝ දක්වා වෙනස් pick
කරන්න . හුදෙක් පණිවිඩ ඉවත ලන ඉවතලීම් භාවිතා කිරීම සහ ලැයිස්තුවේ එහි පූර්වගාමියා සමඟ වෙනස්කම් ඒකාබද්ධ කිරීම. එමfixup
squash
fixup
squash
ඉඟි පද එකම දෙයක් කරනවා, නමුත් අලුතින් සිදු ඒකාබද්ධ කිරීමේ පණිවිඩය කැප වීමට ඔබට සංස්කරණය කිරීමට ඉඩ දෙයි.
ඔබ සංස්කාරකයෙන් ඉවත් වන විට එම ලැයිස්තුවේ පෙන්වන අනුපිළිවෙලට කොමිස් නැවත කැපවන බව සලකන්න. එබැවින් ඔබ තාවකාලික කැපවීමක් කර ඇත්නම්, එම ශාඛාවේම වෙනත් වැඩක් කර පසුව එම අංගය පසුකාලීනව සම්පූර්ණ කර ඇත්නම්, නැවත භාවිතා කිරීම මඟින් කොමිස් නැවත වර්ග කර ස්කොෂ් කිරීමට ඔබට ඉඩ ලැබේ.
අවවාදයයි:
නැවත වෙනස් කිරීම ඉතිහාසය වෙනස් කරයි - ඔබ දැනටමත් වෙනත් සංවර්ධකයින් සමඟ බෙදාගෙන ඇති ඕනෑම කැපවීමකට මෙය නොකරන්න.
ගබඩා කිරීම
අනාගතයේදී, මෙම ගැටළුව වළක්වා ගැනීම git stash
සඳහා, තාවකාලිකව අනුමත නොකළ වැඩ ගබඩා කිරීම සඳහා සලකා බලන්න .
git stash save 'some message'
මෙය ඔබගේ වර්තමාන වෙනස්කම් ඔබගේ තොග ලැයිස්තුවේ පැත්තෙන් ගබඩා කරයි. ඉහත දැක්වෙන්නේ stash විධානයේ වඩාත්ම පැහැදිලි අනුවාදය වන අතර, ඔබ ගබඩා කර ඇති දේ විස්තර කිරීමට අදහස් දැක්වීමට ඉඩ ලබා දේ. ඔබට සරලව ධාවනය කළ හැකි git stash
අතර වෙන කිසිවක් නැත, නමුත් කිසිදු පණිවිඩයක් ගබඩා නොවේ.
ඔබට ඔබේ තොග ලැයිස්තුව පිරික්සීමට හැකිය ...
git stash list
මෙය ඔබගේ සියලු තොග, ඒවා කුමන ශාඛා මත සිදු කර ඇත්ද යන්න සහ පණිවුඩය සහ එක් එක් පේළියේ ආරම්භයේ දී පෙන්වනු ඇති අතර, මේ ආකාරයට පෙනෙන එම තොගය සඳහා හඳුනාගැනීමේ stash@{#}
යන්ත්රය # මෙහි ස්ථානගත කර ඇති ස්ථානය # වේ.
තොගයක් යථා තත්වයට පත් කිරීම සඳහා (ඕනෑම ශාඛාවක කළ හැකි අතර, එම ස්ථානය මුලින් නිර්මාණය කළ ස්ථානය කුමක් වුවත්) ඔබ දුවන්නේ ...
git stash apply stash@{#}
නැවතත්, stashes සමූහයේ පිහිටීම # ඇත. ඔබට යථා තත්වයට පත් කිරීමට අවශ්ය 0
තොගය එම ස්ථානයේ තිබේ නම් - එනම්, එය නවතම ගබඩාව නම්. එවිට ඔබට ස්ටෑෂ් පිහිටීම සඳහන් නොකර විධානය ක්රියාත්මක කළ හැකිය, ඔබ අන්තිම එක අදහස් කරන බව git උපකල්පනය කරයි:git stash apply
.
උදාහරණයක් ලෙස, මම වැරදි ශාඛාවක වැඩ කරන බවක් පෙනේ නම් - මට පහත දැක්වෙන විධානයන් ක්රියාත්මක කළ හැකිය.
git stash
git checkout <correct_branch>
git stash apply
ඔබේ නඩුවේදී ඔබ තව ටිකක් අතු වටා ගමන් කළ නමුත් එම අදහසම තවමත් අදාළ වේ.
මෙය උපකාරී වේ යැයි සිතමි.
git stash