Bagaimana menghapus origin dari repositori git

279

Pertanyaan mendasar: Bagaimana cara melepaskan git repo dari asal kloningnya?

git branch -a menunjukkan:

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

dan saya ingin menghapus semua pengetahuan tentang asal, dan revisi terkait.

Pertanyaan yang lebih panjang: Saya ingin mengambil repo subversi yang ada dan membuat sejumlah repo git yang lebih kecil darinya. Setiap repositori git yang baru harus memiliki sejarah lengkap hanya dari cabang yang relevan. Saya dapat memangkas repo ke subtree yang diinginkan menggunakan:

git filter-branch --subdirectory-filter path/to/subtree HEAD

tetapi repo yang dihasilkan masih berisi semua revisi dari subtree yang sekarang dibuang di bawah asal / cabang utama.

Saya menyadari bahwa saya bisa menggunakan flag -T untuk git-svn untuk mengkloning subtree relevan dari repo subversi di tempat pertama. Saya tidak yakin apakah itu akan lebih efisien daripada nanti menjalankan beberapa instantiations git filter-branch --subdirectory-filterpada salinan git repo tetapi, dalam hal apapun, saya masih ingin memutuskan hubungan dengan asalnya.

sangat buruk
sumber

Jawaban:

476

Cukup mudah:

git remote rm origin

Adapun filter-branchpertanyaan - cukup tambahkan --prune-emptyke perintah cabang filter Anda dan itu akan menghapus revisi yang sebenarnya tidak mengandung perubahan dalam repo yang Anda hasilkan:

git filter-branch --prune-empty --subdirectory-filter path/to/subtree HEAD
Amber
sumber
1
Terima kasih. Itu --prune-emptyyang saya lewatkan.
awy
2
Hmm. mendapatkanerror: Could not remove config section 'remote.origin'
Dima Lituiev
5

Hapus asal yang ada dan tambahkan asal baru ke direktori proyek Anda

>$ git remote show origin

>$ git remote rm origin

>$ git add .

>$ git commit -m "First commit"

>$ git remote add origin Copied_origin_url

>$ git remote show origin

>$ git push origin master
Mandeep Singh Gill
sumber