සටහන: මෙම පිළිතුර SHA1s වෙනස් කරයි, එබැවින් එය දැනටමත් තල්ලු කර ඇති ශාඛාවක් මත භාවිතා කිරීමට සැලකිලිමත් වන්න. ඔබට අවශ්ය වන්නේ නමක අක්ෂර වින්යාසය නිවැරදි කිරීමට හෝ පැරණි විද්යුත් තැපෑලක් යාවත්කාලීන කිරීමට නම්, ඉතිහාසය නැවත ලිවීමකින් තොරව මෙය කිරීමට git ඔබට ඉඩ දෙයි .mailmap
. මගේ අනෙක් පිළිතුර බලන්න .
අන්තර් ක්රියාකාරී ප්රතිස්ථාපනය භාවිතා කිරීම
ඔබට කළ හැකිය
git rebase -i -p <some HEAD before all of your bad commits>
ඉන්පසු ඔබගේ සියලු නරක ක්රියාවන් නැවත සංස්කරණය කිරීමේ ගොනුවේ "සංස්කරණය" ලෙස සලකුණු කරන්න. ඔබේ පළමු බැඳීමද වෙනස් කිරීමට ඔබට අවශ්ය නම්, ඔබ එය ප්රතිවිකුණුම් ගොනුවේ පළමු පේළිය ලෙස අතින් එකතු කළ යුතුය (අනෙක් පේළි වල ආකෘතිය අනුගමනය කරන්න). එක් එක් බැඳීම සංශෝධනය කරන්නැයි git ඔබෙන් ඉල්ලා සිටින විට, කරන්න
git commit --amend --author "New Author Name <email@address.com>"
විවෘත කරන සංස්කාරකය සංස්කරණය කරන්න හෝ වසා දමන්න, ඉන්පසු කරන්න
git rebase --continue
නැවත ආරම්භ කිරීම සඳහා.
එකතු --no-edit
කිරීමෙන් ඔබට සංස්කාරකය විවෘත කිරීම සම්පූර්ණයෙන්ම මඟ හැරිය හැක, එවිට විධානය වනුයේ:
git commit --amend --author "New Author Name <email@address.com>" --no-edit && \
git rebase --continue
තනි කැපවීම
සමහර විචාරකයින් සඳහන් කර ඇති පරිදි, ඔබට නවතම කැපවීම වෙනස් කිරීමට අවශ්ය නම්, නැවත ගෙවීමේ විධානය අවශ්ය නොවේ. කරන්න
git commit --amend --author "New Author Name <email@address.com>"
මෙය කතුවරයා නිශ්චිත නමට වෙනස් කරනු ඇත, නමුත් බැඳීම ඔබගේ වින්යාස කරන ලද පරිශීලකයාට git config user.name
සහ තුළ සැකසෙනු ඇත git config user.email
. ඔබ සඳහන් කළ දෙයකට බැඳුම්කරය සැකසීමට ඔබට අවශ්ය නම්, මෙය කතුවරයා සහ බැඳීම යන දෙකම සැකසෙනු ඇත:
git -c user.name="New Author Name" -c user.email=email@address.com commit --amend --reset-author
ඒකාබද්ධ කිරීමේ කමිටු පිළිබඳ සටහන
මගේ මුල් ප්රතිචාරයේ සුළු අඩුපාඩුවක් තිබුණි. වත්මන් අතර යම් මුසුව අනාචාරයේ තිබේ නම් HEAD
, ඔබේ <some HEAD before all your bad commits>
, එසේ නම් git rebase
ඔවුන් පැතලි ඇත (සහ මාර්ගය විසින්, ඔබ GitHub අදින්න ඉල්ලීම් භාවිතා කරන්නේ නම්, ඔබගේ ඉතිහාසයේ ඒකාබද්ධ අනාචාරයේ ටොන් වනු ඇත). මෙය බොහෝ විට වෙනස් ඉතිහාසයකට මඟ පෑදිය හැකිය (අනුපිටපත් වෙනස් කිරීම් "නැවත ප්රතිස්ථාපනය කළ හැකි බැවින්"), සහ නරකම අවස්ථාවෙහිදී, git rebase
දුෂ්කර ඒකාබද්ධ කිරීමේ ගැටුම් නිරාකරණය කිරීමට ඔබෙන් ඉල්ලා සිටීමට එය හේතු විය හැකිය (ඒකාබද්ධ කිරීමේ කමිටුවල දැනටමත් විසඳා ඇති). විසඳුම වන්නේ -p
ධජය භාවිතා කිරීමයි git rebase
, එමඟින් ඔබේ ඉතිහාසයේ ඒකාබද්ධ ව්යුහය ආරක්ෂා වේ. git rebase
භාවිතා කිරීම -p
සහ -i
ගැටළු වලට තුඩු දිය හැකි බවට මෑන්පේජ් අනතුරු අඟවයි , නමුත්BUGS
එහි සඳහන් වන්නේ "කොමිස් සංස්කරණය කිරීම සහ ඔවුන්ගේ පණිවිඩ නැවත ලිවීම හොඳින් ක්රියාත්මක විය යුතු බවයි."
මම -p
ඉහත විධානයට එකතු කර ඇත්තෙමි . ඔබ නවතම කැපවීම වෙනස් කරන අවස්ථාව සඳහා, මෙය ගැටළුවක් නොවේ.