Solusi alternatif adalah dengan melakukan perubahan, dan kemudian menyingkirkan komitmen tersebut. Ini tidak memiliki manfaat langsung pada awalnya, tetapi membuka kemungkinan untuk melakukan potongan, dan untuk membuat tag git untuk cadangan.
Anda dapat melakukannya di cabang saat ini, seperti ini:
git add (-A) .
git commit -m"DISCARD: Temporary local changes"
git tag archive/local-changes-2015-08-01 # optional
git revert HEAD
git reset HEAD^^
Atau Anda dapat melakukannya di HEAD terpisah. (dengan asumsi Anda mulai di cabang BRANCHNAME):
git checkout --detach HEAD
git add (-A) .
git commit -m"DISCARD: Temporary local changes"
git tag archive/local-changes-2015-08-01 # optional
git checkout BRANCHNAME
Namun, apa yang biasanya saya lakukan adalah dengan melakukan potongan, kemudian beri nama beberapa atau semua komit sebagai "DISCARD: ...". Kemudian gunakan rebase interaktif untuk menghapus komitmen buruk dan menjaga yang baik.
git add -p # Add changes in chunks.
git commit -m"DISCARD: Some temporary changes for debugging"
git add -p # Add more stuff.
git commit -m"Docblock improvements"
git tag archive/local-changes-2015-08-01
git rebase -i (commit id) # rebase on the commit id before the changes.
# Remove the commits that say "DISCARD".
Ini lebih bertele-tele, tetapi memungkinkan untuk meninjau perubahan mana yang ingin Anda buang.
The git lol
dangit lola
cara pintas telah sangat membantu dengan alur kerja ini.
git help reset
dangit help clean