Git: ubah satu baris dalam file untuk cerita lengkap

Ketika saya meluncurkan repositori git, saya menyelesaikan beberapa file sebagai komit awal. Sekarang banyak komitmen kemudian, saya perhatikan bahwa saya menyertakan baris dengan informasi dalam file-file ini yang tidak ingin saya terbitkan (tidak seperti kode lainnya). Karena itu, saya ingin menghapus / mengubah baris ini dan menyimpan sisa kode.

Cari di sekitar Saya menemukan solusi ini: masukkan perbaikan kosong sebagai perbaikan asli (dijelaskan di sini: Masukkan perbaikan sebelum memperbaiki root di Git? ), Memformat u>git: menyelesaikan konflik yang disebabkan oleh rebase ).

Apakah ada cara lain untuk menyelesaikan masalah saya atau apakah saya perlu menginstal u>

Terima kasih sebelumnya :)

Tibo

27
25 авг. atur TiBo 25 Agustus. 2011-08-25 20:52 '11 pada 20:52 2011-08-25 20:52
@ 3 balasan

Berikut adalah perintah yang akan menghapus string pe>

 git filter-branch --tree-filter 'sed -i "/sensitive information/ d" filename' -- --all 

Ini memeriksa setiap revisi, menjalankan perintah sed di atasnya, dan kemudian mengembalikan revisi itu.

Perintah sed dalam hal ini cocok dengan baris yang berisi pola sensitive information dalam file bernama filename dan menghapus baris-baris ini.

Catatan: Baik jika Anda memiliki cadangan, dan pertama-tama coba skrip sed untuk memastikan itu melakukan apa yang Anda inginkan, karena dibutuhkan waktu yang cukup lama untuk sejarah yang panjang.

35
26 авг. balasan yang diberikan oleh Karl Bielefeldt 26 Agustus. 2011-08-26 01:39 '11 pada 1:39 2011-08-26 01:39

Saya membuat perintah ini yang tidak memberikan kesalahan ketika file tidak ada:

border=0
  filename=./path/to/your/filename filter=your_regex_here git filter-branch --tree-filter 'test -f $filename  sed -i.bak "/$filter/d" $filename || echo "skipping file"' -- --all 
4
01 июля '16 в 0:37 2016-07-01 00:37 jawabannya diberikan oleh Ted Yavuzkurt 01 Juli '16 di 0:37 2016-07-01 00:37

Anda dapat melihat git filter-branch

Contoh dalam tautan akan membantu Anda: http://git-scm.com/docs/git-filter-branch

1
25 авг. jawabannya diberikan manojlds 25 agustus . 2011-08-25 21:14 '11 pada 21:14 2011-08-25 21:14

Pertanyaan lain tentang tag atau Ajukan Pertanyaan