Amazon Best VPN GoSearch

Favicon OnWorks

git-subtree - Dalam talian dalam Awan

Jalankan git-subtree dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan git-subtree yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


git-subtree - Gabungkan subpohon bersama-sama dan bahagikan repositori kepada subpohon

SINOPSIS


pergi pokok kecil tambah -P
pergi pokok kecil tambah -P
pergi pokok kecil tarik -P
pergi pokok kecil tolak -P
pergi pokok kecil bergabung -P
pergi pokok kecil belah -P [PILIHAN] [ ]

DESCRIPTION


Subpohon membenarkan subprojek dimasukkan dalam subdirektori projek utama,
pilihan termasuk keseluruhan sejarah subprojek.

Sebagai contoh, anda boleh memasukkan kod sumber untuk perpustakaan sebagai subdirektori anda
permohonan.

Subpohon tidak boleh dikelirukan dengan submodul, yang dimaksudkan untuk tugas yang sama. Tidak seperti
submodul, subpokok tidak memerlukan sebarang pembinaan khas (seperti fail .gitmodule atau
gitlinks) hadir dalam repositori anda, dan jangan paksa pengguna akhir repositori anda untuk
melakukan sesuatu yang istimewa atau untuk memahami cara subpokok berfungsi. Subtree hanyalah subdirektori
yang boleh komited, bercabang dan digabungkan bersama projek anda dalam apa jua cara anda
mahu.

Mereka juga tidak boleh dikelirukan dengan menggunakan strategi gabungan subtree. Yang utama
perbezaannya ialah, selain menggabungkan projek lain sebagai subdirektori, anda juga boleh
ekstrak keseluruhan sejarah subdirektori daripada projek anda dan jadikan ia menjadi a
projek kendiri. Berbeza dengan strategi cantum subtree, anda boleh bersilih ganti
antara dua operasi ini. Jika perpustakaan kendiri dikemas kini, anda boleh
menggabungkan perubahan secara automatik ke dalam projek anda; jika anda mengemas kini perpustakaan di dalam anda
projek, anda boleh "memisahkan" semula perubahan itu semula dan menggabungkannya kembali ke dalam pustaka
projek.

Sebagai contoh, jika perpustakaan yang anda buat untuk satu aplikasi akhirnya berguna di tempat lain, anda
boleh mengekstrak keseluruhan sejarahnya dan menerbitkannya sebagai repositori git sendiri, tanpa
secara tidak sengaja mencampurkan sejarah projek aplikasi anda.

Petua
Untuk memastikan mesej komitmen anda bersih, kami mengesyorkan agar orang ramai memisahkan mesej mereka
melakukan antara subpokok dan projek utama sebanyak mungkin. Iaitu, jika anda
buat perubahan yang mempengaruhi kedua-dua perpustakaan dan aplikasi utama, lakukannya dalam dua
kepingan. Dengan cara itu, apabila anda membahagikan pustaka itu akan keluar kemudian, huraian mereka
tetap akan masuk akal. Tetapi jika ini tidak penting kepada anda, itu tidak penting perlu. git
subtree hanya akan meninggalkan bahagian bukan berkaitan perpustakaan bagi komit apabila ia
membahagikannya kepada subprojek kemudian.

PERINTAH


menambah
Cipta subtree dengan mengimport kandungannya daripada yang diberikan atau
dan jauh . Komit baharu dibuat secara automatik, menyertai
sejarah projek yang diimport dengan anda sendiri. Dengan --skuasy, mengimport hanya satu komit
daripada subprojek, bukannya keseluruhan sejarahnya.

bergabung
Gabungkan perubahan terkini sehingga ke dalam pokok pokok. Seperti biasa pergi
bergabung, ini tidak mengalih keluar perubahan setempat anda sendiri; ia hanya menggabungkan perubahan tersebut menjadi
yang terbaru . Dengan --skuasy, mencipta hanya satu komit yang mengandungi semua
perubahan, bukannya bergabung dalam keseluruhan sejarah.

Jika anda menggunakan --skuasy, arah cantuman tidak semestinya perlu ke hadapan; awak boleh
gunakan arahan ini untuk kembali ke masa dari v2.5 hingga v2.4, sebagai contoh. Jika anda bergabung
memperkenalkan konflik, anda boleh menyelesaikannya dengan cara biasa.

tarik
Betul-betul suka bergabung, tetapi selari pergi tarik kerana ia mengambil rujukan yang diberikan daripada
repositori jauh yang ditentukan.

menolak
Adakah a berpecah (lihat di bawah) menggunakan dibekalkan dan kemudian melakukan a pergi menolak untuk menolak
hasilnya ke repositori dan rujuk. Ini boleh digunakan untuk menolak subpokok anda ke
cawangan repositori jauh yang berbeza.

berpecah
Ekstrak sejarah projek sintetik baharu daripada sejarah pokok pokok. The
sejarah baharu termasuk hanya komit (termasuk gabungan) yang terjejas , dan
setiap commit itu kini mempunyai kandungan pada akar projek
bukannya dalam subdirektori. Oleh itu, sejarah yang baru dicipta sesuai untuk dieksport
sebagai repositori git yang berasingan.

Selepas pemisahan berjaya, satu id komit tunggal dicetak ke stdout. ini
sepadan dengan KEPALA pokok yang baru dibuat, yang anda boleh manipulasi walau bagaimanapun
awak mahu.

Pemisahan berulang dari sejarah yang sama dijamin sama (iaitu
menghasilkan id komit yang sama). Kerana ini, jika anda menambah komitmen baru dan kemudian
dipisahkan semula, komitmen baharu akan dilampirkan sebagai komitmen di atas sejarah anda
dijana kali terakhir, jadi pergi bergabung dan rakan-rakan akan bekerja seperti yang diharapkan.

Perhatikan bahawa jika anda menggunakan --skuasy apabila anda bergabung, anda biasanya bukan sahaja --bergabung semula
apabila anda berpecah.

PILIHAN


-q, --senyap
Sekat mesej output yang tidak perlu pada stderr.

-d, --debug
Menghasilkan lebih banyak mesej output yang tidak perlu pada stderr.

-P , --prefix=
Tentukan laluan dalam repositori kepada subpokok yang anda mahu manipulasi. Pilihan ini
adalah wajib untuk semua perintah.

-m , --message=
Pilihan ini hanya sah untuk tambah, cantum dan tarik (tidak pasti). Nyatakan sebagai
commit mesej untuk merge commit.

PILIHAN UNTUK TAMBAH, GABUNGAN, TOLAK, PULL


--skuasy
Pilihan ini hanya sah untuk arahan tambah, cantum dan tarik.

Daripada menggabungkan keseluruhan sejarah daripada projek subtree, hasilkan hanya satu
commit yang mengandungi semua perbezaan yang anda ingin gabungkan, dan kemudian gabungkan baharu itu
komited dalam projek anda.

Menggunakan pilihan ini membantu mengurangkan kekusutan balak. Orang jarang mahu melihat setiap perubahan
yang berlaku antara v1.0 dan v1.1 pustaka yang mereka gunakan, kerana tiada satu pun
versi interim pernah disertakan dalam permohonan mereka.

Menggunakan --skuasy juga membantu mengelakkan masalah apabila subprojek yang sama disertakan berbilang
kali dalam projek yang sama, atau dialih keluar dan kemudian ditambah semula. Dalam kes sedemikian, ia tidak
tetap masuk akal untuk menggabungkan sejarah, kerana tidak jelas bahagian mana
sejarah kepunyaan subtree yang mana.

Tambahan pula, dengan --skuasy, anda boleh bertukar-tukar antara versi yang berbeza
daripada subpokok, bukannya ke hadapan dengan ketat. pergi pokok kecil bergabung --skuasy sentiasa menyesuaikan diri
subpokok untuk memadankan komit yang ditentukan dengan tepat, walaupun jika sampai ke komit itu
memerlukan membuat asal beberapa perubahan yang telah ditambahkan sebelum ini.

Sama ada anda gunakan atau tidak --skuasy, perubahan yang dibuat dalam repositori tempatan anda kekal utuh
dan kemudian boleh dibahagikan dan dihantar ke hulu ke subprojek.

PILIHAN UNTUK BERPECAH


--anotasi=
Pilihan ini hanya sah untuk arahan split.

Apabila menjana sejarah sintetik, tambah sebagai awalan kepada setiap komit
mesej. Memandangkan kami sedang mencipta komitmen baharu dengan mesej komit yang sama, tetapi mungkin
kandungan yang berbeza, daripada komit asal, ini boleh membantu membezakannya dan
mengelakkan kekeliruan.

Setiap kali anda berpecah, anda perlu menggunakan yang sama , atau anda tidak mempunyai a
menjamin bahawa sejarah baru yang dicipta semula akan sama dengan yang lama. Itu akan
menghalang penggabungan daripada berfungsi dengan betul. git subtree cuba menjadikannya berfungsi,
terutamanya jika anda menggunakan --rejoin, tetapi ia mungkin tidak selalu berkesan.

-b , --cawangan=
Pilihan ini hanya sah untuk arahan split.

Selepas menjana sejarah sintetik, buat cawangan baharu yang dipanggil itu
mengandungi sejarah baru. Ini sesuai untuk menolak segera ke hulu.
mesti belum wujud.

--abaikan-bergabung
Pilihan ini hanya sah untuk arahan split.

Jika anda menggunakan --bergabung semula, git subtree cuba mengoptimumkan pembinaan semula sejarahnya kepada
hanya menjana komitmen baharu sejak yang terakhir --bergabung semula. --abaikan-join melumpuhkan ini
tingkah laku, memaksanya untuk menjana semula keseluruhan sejarah. Dalam projek besar, ini boleh
mengambil masa yang lama.

--onto=
Pilihan ini hanya sah untuk arahan split.

Jika subtree anda pada asalnya diimport menggunakan sesuatu selain git subtree, its
sejarah mungkin tidak sepadan dengan apa yang dijangkakan oleh git subtree. Dalam kes itu, anda boleh menentukan
komit id yang sepadan dengan semakan pertama sejarah subprojek
yang telah diimport ke dalam projek anda, dan git subtree akan cuba membina sejarahnya
dari sana.

Sekiranya anda digunakan pergi pokok kecil menambah, anda tidak sepatutnya memerlukan pilihan ini.

--bergabung semula
Pilihan ini hanya sah untuk arahan split.

Selepas berpecah, gabungkan semula sejarah sintetik yang baru dibuat ke dalam utama anda
projek. Dengan cara itu, perpecahan masa depan boleh mencari hanya bahagian sejarah yang telah
ditambah sejak yang terbaru --join semula.

Jika komit perpecahan anda akhirnya digabungkan ke dalam subprojek huluan, dan kemudian anda mahu melakukannya
dapatkan versi huluan terkini, ini akan membolehkan algoritma gabungan git kepada lebih banyak lagi
mengelak konflik dengan bijak (kerana ia tahu komitmen sintetik ini sudah menjadi sebahagian
repositori hulu).

Malangnya, menggunakan pilihan ini menghasilkan pergi log menunjukkan salinan tambahan setiap yang baharu
commit yang dibuat (yang asal dan yang sintetik).

Jika anda melakukan semua gabungan anda dengan --skuasy, jangan gunakan --bergabung semula apabila anda berpecah, kerana
anda tidak mahu sejarah subprojek menjadi sebahagian daripada projek anda.

CONTOH 1. MASUKKAN COMMAND


Mari kita anggap bahawa anda mempunyai repositori tempatan yang anda ingin tambahkan luaran
perpustakaan vendor ke. Dalam kes ini kami akan menambah repositori git-subtree sebagai subdirektori
daripada repositori git-extensions anda yang sedia ada ~/git-extensions/:

$ git subtree add --prefix=git-subtree --squash \
git://github.com/apenwarr/git-subtree.git tuan

master perlu menjadi rujukan jauh yang sah dan boleh menjadi nama cawangan yang berbeza

Anda boleh meninggalkan bendera --squash, tetapi berbuat demikian akan meningkatkan bilangan komit itu
disertakan dalam repositori tempatan anda.

Kami kini mempunyai a ~/git-extensions/git-subtree direktori yang mengandungi kod daripada induk
cawangan git://github.com/apenwarr/git-subtree.git dalam repositori git-extensions kami.

CONTOH 2. EXTRACT A SUBTREE MENGGUNAKAN KOMITED, MERGE DAN PULL


Mari kita gunakan repositori untuk kod sumber git sebagai contoh. Pertama, dapatkan salinan anda sendiri
daripada repositori git.git:

$ git clone git://git.kernel.org/pub/scm/git/git.git test-git
$ cd test-git

gitweb (commit 1130ef3) telah digabungkan menjadi git sejak commit 0a8f4f0, selepas itu ia tidak
lebih lama diselenggara secara berasingan. Tetapi bayangkan ia telah diselenggara secara berasingan, dan kami mahu
untuk mengekstrak perubahan git kepada gitweb sejak masa itu, untuk berkongsi dengan huluan. Kamu boleh
melakukan ini:

$ git subtree split --prefix=gitweb --annotate='(split) ' \
0a8f4f0^.. --onto=1130ef3 --sertai semula \
--cawangan gitweb-terkini
$ gitk gitweb-latest
$ git push [e-mel dilindungi]:whatever/gitweb.git gitweb-latest:master

(Kami guna 0a8f4f0^.. kerana itu bermakna "semua perubahan dari 0a8f4f0 kepada semasa
versi, termasuk 0a8f4f0 sendiri.")

Jika gitweb pada asalnya telah digabungkan menggunakan pergi pokok kecil menambah (atau perpecahan sebelumnya telah
telah dilakukan dengan --rejoin specified) maka anda boleh melakukan semua pemisahan anda tanpa perlu
untuk mengingati sebarang id komit yang pelik:

$ git subtree split --prefix=gitweb --annotate='(split) ' --rejoin \
--cawangan gitweb-terkini2

Dan anda boleh menggabungkan semula perubahan dari projek huluan dengan mudah:

$ git subtree pull --prefix=gitweb \
[e-mel dilindungi]:whatever/gitweb.git master

Atau, menggunakan --skuasy, anda sebenarnya boleh gulung semula ke versi gitweb yang lebih awal:

$ git subtree merge --prefix=gitweb --squash gitweb-latest~10

Kemudian buat beberapa perubahan:

$ tarikh >gitweb/myfile
$ git tambah gitweb/myfile
$ git commit -m 'mencipta myfile'

Dan pantas ke hadapan sekali lagi:

$ git subtree merge --prefix=gitweb --squash gitweb-latest

Dan perhatikan bahawa perubahan anda masih utuh:

$ ls -l gitweb/myfile

Dan anda boleh memisahkannya dan melihat perubahan anda berbanding gitweb standard:

git log gitweb-latest..$(git subtree split --prefix=gitweb)

CONTOH 3. EXTRACT A SUBTREE MENGGUNAKAN CAWANGAN


Katakan anda mempunyai direktori sumber dengan banyak fail dan subdirektori, dan anda mahu
ekstrak direktori lib ke projek gitnya sendiri. Berikut ialah cara ringkas untuk melakukannya:

Pertama, buat repositori baharu di mana sahaja anda mahu:

$
$ git init --bare

Kembali ke direktori asal anda:

$ git subtree split --prefix=lib --annotate="(split)" -b split

Kemudian tolak cawangan baharu ke repositori kosong baharu:

$ git push belah:tuan

Gunakan git-subtree dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

Arahan Linux

Ad




×
Pengiklanan
❤ ️Beli, tempah atau beli di sini — tanpa kos, membantu memastikan perkhidmatan percuma.