Git mencegah mengklik setelah mengubah komit

Saya biasanya lari

 git add file git commit git push 

tetapi jika saya memperbaiki fiksasi dengan mengkliknya (menggunakan git commit --amend ), klik berikutnya akan gagal menggunakan

 hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (eg hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

Bagaimana saya bisa membiarkan git mendorong perubahan tanpa menggabungkan cabang? Saya hanya memiliki satu cabang ( master ), dan saya adalah satu-satunya orang yang menggunakan repo ini, jadi mengapa dia mengatakan itu?

cabang git -a:

 * master remotes/origin/HEAD -> origin/master remotes/origin/master 

EDIT: Menggunakan gitk HEAD @{u} , saya melihat bahwa saya memiliki dua cabang, satu dengan perbaikan asli, dan yang lainnya dengan perbaikan dimodifikasi.

31
03 сент. ditetapkan oleh minerz029 pada 03 September . 2013-09-03 12:42 '13 pada 12:42 2013-09-03 12:42
@ 3 balasan

Ini bisa terjadi hanya jika Anda memperbaiki fiksasi yang sudah ditekan. Sebagai aturan, Anda tidak boleh melakukan ini, karena Anda mengubah cerita yang diterbitkan. Namun, dalam kasus Anda, Anda bisa pergi dengan push -f , yang akan menimpa komit jarak jauh dengan versi yang dimodifikasi.

44
03 сент. jawabannya diberikan oleh Joey 03 Sep 2013-09-03 12:44 '13 pada 12:44 2013-09-03 12:44

Anda mengubah retainer yang dihapus seperti pada

 git pull origin master git commit -a --amend -m "..." git push 

Anda dapat memecahkan masalah dengan mengembalikan pesan yang diperbaiki:

 git reset --mixed origin/master 

dan sekali lagi membuatnya menjadi fiksasi penuh

6
03 сент. Balas diberikan oleh Stefano Falasca 03 Sep 2013-09-03 12:44 '13 pada 12:44 2013-09-03 12:44

Ya, Anda seharusnya tidak melakukan ini (dengan menekan fiksasi, lalu mengubahnya dan mencoba menekannya lagi).

Sebagai gantinya, Anda dapat membatalkan Git ke komit sebelumnya tanpa mengubah file, lalu membuat komit baru:

 git reset --mixed origin/master git add . git commit -m "This is a new commit for what I originally planned to be an amendmend" git push origin master 

ini akan membuat komit baru dengan perubahan yang akan Anda ubah.

6
03 сент. Jawabannya diberikan Nils Werner 03 September. 2013-09-03 12:45 '13 pada 12:45 2013-09-03 12:45

Pertanyaan lain tentang tag atau Ajukan pertanyaan