Saat ini saya memiliki repositori pribadi di github yang ingin saya publikasikan. Namun beberapa komitmen awal berisi informasi yang saya tidak ingin publikasikan (hardcoded crentials, dll).
Apa rute termudah untuk membuat komit terbaru menjadi publik (saya tidak benar-benar membutuhkan atau menginginkan komit sebelumnya dalam repositori publik) tanpa menyertakan sebagian atau semua riwayat komit?
Jawaban:
Anda dapat membatasi kedalaman sejarah saat melakukan kloning :
Gunakan ini jika Anda ingin riwayat terbatas, tetapi masih ada beberapa.
sumber
shallow update not allowed
.Gunakan perintah berikut:
Dimana:
depth
adalah jumlah komitmen yang ingin Anda sertakan. yaitu jika Anda hanya ingin menggunakan komit terbarugit clone --depth 1
branch
adalah nama cabang jarak jauh yang ingin Anda tiru. yaitu jika Anda ingin 3 commit terakhir darimaster
penggunaan cabanggit clone --depth 3 -b master
repo_url
adalah url repositori Andasumber
shallow update not allowed
. Saya menemukan jawaban stack overflow ini berguna dalam hal ini.Menghapus
.git
folder mungkin adalah jalur termudah karena Anda tidak ingin / memerlukan riwayat (seperti kata Stephan).Jadi Anda dapat membuat repo baru dari komit terbaru Anda: ( Bagaimana cara mengkloning seed / memulai proyek tanpa seluruh sejarah? )
kemudian hapus
.git
, dan kemudian jalankanAtau jika Anda ingin menggunakan kembali repo Anda saat ini: Buat komit saat ini menjadi satu-satunya (awal) komit dalam repositori Git?
Ikuti langkah-langkah di atas lalu:
Dorong ke repo Anda.
sumber
sumber
--depth 1
tidak perlu dalam hal ini karena sejarah juga dihapus denganrm -rf .git
git clone --depth 1 -b $src_branch $repo_src_url $dir && cd ./$dir && git commit --amend --author "Some One <[email protected]>" -m "Initial Commit" && git remote set-url origin $repo_trg_url && git push -u origin master
--depth 1
itu tidak perlu tetapi juga tidak berbahaya dan menghemat sedikit bandwidth jaringan (tidak ada gunanya mengambil sejarah yang akan Anda hapus)Bukankah ini tepatnya yang dilakukan oleh squashing rebase? Tekan saja semua kecuali komit terakhir dan kemudian (paksakan) dorong.
sumber