Kami menggunakan repositori git untuk menyimpan proyek kami. Kami memiliki cabang kami yang berangkat dari cabang asli. Tapi sekarang kami ingin membuat proyek kecil baru untuk melacak beberapa dokumentasi. Untuk itu kami ingin membuat cabang kosong baru untuk mulai menyimpan file kami, dan saya ingin pengguna lain dari jaringan mengkloning cabang itu.
Bagaimana kita bisa melakukan itu?
Saya mencoba beberapa hal, tetapi mereka tidak berhasil.
$ mkdir proj_doc; cd proj_doc
$ git init
$ git add .
$ git commit -m 'first commit'
$ git br proj_doc
$ git co proj_doc
$ git br -d master
$ git push origin proj_doc
Tampaknya mendorong cabang ok, tetapi ketika saya mengambil atau menarik, itu mengunduh informasi dari cabang lain, dan kemudian saya juga mendapatkan beberapa file tambahan dari proyek lain. Apa solusi terbaik?
git
branch
git-branch
fazineroso
sumber
sumber
submodule
proyek asli, mis.docs/
Menunjuk ke repo lain itu. Atau, jika Anda ingin menggabungkan kode nanti, tambahkan sebagai remote..gitignore
file Anda, dan juga terus-menerus beralih di antara dua root (cabang). Jadi saya juga untuk pendekatan repo baru, di folder baru, memiliki remote yang sama, dan mendorong ke cabang lain.Jawaban:
Anda dapat membuat cabang sebagai anak yatim:
Ini akan membuat cabang baru tanpa orang tua. Kemudian, Anda dapat menghapus direktori kerja dengan:
dan tambahkan file dokumentasi, komit dan dorong mereka ke github.
Tarik atau ambil akan selalu memperbarui informasi lokal tentang semua cabang jarak jauh. Jika Anda hanya ingin menarik / mengambil informasi untuk satu cabang jarak jauh, Anda perlu menentukannya.
sumber
git checkout --orphan <branch>
; Saya tidak melihat daftar <branch> digit branch
.git checkout --orphan
satu dapat digunakangit reset --hard
untuk menghapus file yang tersisa.git checkout --orphan <branch>
adalah karena belum memiliki komitmen. Setelah komit pertamagit branch
mencetak cabang baru.Jawaban yang benar adalah membuat cabang yatim. Saya menjelaskan bagaimana melakukan ini secara rinci di blog saya. (Tautan yang diarsipkan)
sumber
Buat cabang baru yang kosong seperti ini:
Jika file proj-doc Anda sudah dalam komit di bawah subdir tunggal, Anda dapat membuat cabang baru dengan cara ini:
yang mungkin lebih nyaman daripada
git branch --orphan
jika itu akan meninggalkan Anda dengan banyakgit rm
dangit mv
harus dilakukan.Mencoba
dan lihat apakah itu membantu masalah pengambilan terlalu banyak Anda. Juga jika Anda benar-benar hanya ingin mengambil satu cabang saja, paling aman untuk hanya menentukannya di commandline.
sumber
git checkout --orphan new-branch; git reset --hard
xargs
?Jika versi git Anda tidak memiliki opsi --orphan, metode ini harus digunakan:
Setelah melakukan beberapa pekerjaan:
sumber
git clean
bisa menghapus file yang tidak ingin Anda hapus! Jalankangit clean -ndx
pertama untuk melihat file apa yang akan dihapus sebelum Anda menjalankannya nyata dengan-f
opsi.Katakanlah Anda memiliki
master
cabang dengan file / direktori:Langkah demi langkah cara membuat cabang kosong:
git checkout —orphan new_branch_name
ls -la |awk '{print $9}' |grep -v git |xargs -I _ rm -rf ./_
git rm -rf .
touch new_file
git add new_file
git commit -m 'added first file in the new branch'
git push origin new_branch_name
Pada langkah 2, kami cukup menghapus semua file secara lokal untuk menghindari kebingungan dengan file di cabang baru Anda dan yang Anda simpan
master
cabang. Kemudian, kami memutuskan tautan semua file di langkah 3. Akhirnya, langkah 4 dan setelah bekerja dengan cabang kosong baru kami.Setelah selesai, Anda dapat dengan mudah beralih di antara cabang-cabang Anda:
sumber
Atas dasar jawaban ini dari Hiery Nomus .
Anda dapat membuat cabang sebagai anak yatim:
Ini akan membuat cabang baru tanpa orang tua. Kemudian, Anda dapat menghapus direktori kerja dengan:
Dan kemudian Anda hanya melakukan cabang dengan komit kosong dan kemudian mendorong
sumber
Lihat dokumentasi ini , ini memiliki detail yang jelas tentang
sumber
saya menemukan bantuan ini:
sumber