π§ ΠΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π°Π²ΡΠΎΡΠ° ΠΊΠΎΠΌΠΌΠΈΡΠ° git: ΠΏΡΠΎΡΡΠΎΠΉ Π³ΠΈΠ΄ ΠΏΠΎ ΡΠ°Π³Π°ΠΌ
git commit --amend --author="ΠΠΌΡ ΠΠ²ΡΠΎΡΠ° <ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ°>"
git commit --amend --author="John Doe <johndoe@example.com>"
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π°Π²ΡΠΎΡΠ° ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Git, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠΎΠΌΠΌΠΈΡ Π² Git ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΡΠΎ ΡΠ΄Π΅Π»Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΈ Π΄Π»Ρ ΡΠ΅Π³ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π²ΡΠΎΡΠ° ΠΊΠΎΠΌΠΌΠΈΡΠ°. Π Git Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΠ΅ΡΠΎΠ΄ 1: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ "git commit --amend"
ΠΠ΅ΡΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ "git commit --amend". ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² Π²Π°ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ. Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π°Π²ΡΠΎΡΠ° ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΡΠ½Π΅Π²ΡΡ ΠΏΠ°ΠΏΠΊΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
- ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git commit --amend --author="ΠΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ <Π½ΠΎΠ²ΡΠΉ_email@example.com>"
- ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ "ΠΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ" Π½Π° Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ Π°Π²ΡΠΎΡΠ° ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΈ "Π½ΠΎΠ²ΡΠΉ_email@example.com" Π½Π° Π½ΠΎΠ²ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π°Π²ΡΠΎΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
git commit --amend --author="ΠΠ²Π°Π½ ΠΠ²Π°Π½ΠΎΠ² <ivan@example.com>"
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ Enter, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Git ΠΎΠ±Π½ΠΎΠ²ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Ρ Π½ΠΎΠ²ΡΠΌ Π°Π²ΡΠΎΡΠΎΠΌ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΠΊΠΎΠΌΠΌΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π°Π²ΡΠΎΡΠ°.
ΠΠ΅ΡΠΎΠ΄ 2: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ "git filter-branch"
ΠΡΠΎΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ "git filter-branch". ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΡΠ½Π΅Π²ΡΡ ΠΏΠ°ΠΏΠΊΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
- ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git filter-branch --env-filter 'GIT_AUTHOR_NAME="ΠΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ"; GIT_AUTHOR_EMAIL="Π½ΠΎΠ²ΡΠΉ_email@example.com"; GIT_COMMITTER_NAME="ΠΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ"; GIT_COMMITTER_EMAIL="Π½ΠΎΠ²ΡΠΉ_email@example.com";' -- --branches --tags
- ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ "ΠΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ" Π½Π° Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ Π°Π²ΡΠΎΡΠ° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ "Π½ΠΎΠ²ΡΠΉ_email@example.com" Π½Π° Π½ΠΎΠ²ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π°Π²ΡΠΎΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
git filter-branch --env-filter 'GIT_AUTHOR_NAME="ΠΠ²Π°Π½ ΠΠ²Π°Π½ΠΎΠ²"; GIT_AUTHOR_EMAIL="ivan@example.com"; GIT_COMMITTER_NAME="ΠΠ²Π°Π½ ΠΠ²Π°Π½ΠΎΠ²"; GIT_COMMITTER_EMAIL="ivan@example.com";' -- --branches --tags
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ Enter, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Git ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π°Π²ΡΠΎΡΠ°.
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° "git filter-branch" ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΈ ΠΏΠΎΡΠ»Π΅ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΡΠΎ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π²ΡΠΎΡΠ° ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Git. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½Π° Π΄Π»Ρ Π²Π°Ρ! Π£Π΄Π°ΡΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ Git!