Rumah > Soal Jawab > teks badan
如上图的一个成功分支模型。
我的疑问就是,在其他一些辅助性分支merge到develop分支之前,develop分支有改变,那么辅助性分支应该merge develop分支,与develop分支保持同步,但是从图上并看不出这个动作。
如果其他辅助性分支需要实时同步develop分支,那么用merge --no-ff,还是直接merge或者rebase呢?
那么这样一来图形是不是会变乱?
这是我本地测试的情况,都用的merge --no-ff模式合并
目前又遇到一个问题是,同一个分支不同人clone到本地,做开发,然后在push的时候,偶尔会发生一个merge动作,大概是这样的,在本地git push 的时候,提示需要先pull,此时git pull会自动执行一个merge动作,不知道大家遇到过这个问题没?
还有多人开发的时候,大家是不是都自己创建一个branch分支开发,而不是直接在远程的分支上做开发,比如develop是个远程分支,那么多人开发的时候clone到本地,直接在develop上开发,还是git checkout -b local branch开发?
ps:不知道描述清楚没.
大家讲道理2017-05-02 09:21:06
Jika saya diminta melakukannya, saya akan melakukannya.
Berbilang cawangan yang bercabang daripada membangunkan hanya bertukar kod melalui pembangunan dan tidak akan bergabung antara satu sama lain.
Apabila setiap cawangan menyegerakkan cawangan pembangunan, gunakan pilihan --rebase untuk menyegerakkan komitmen terkini pembangunan ke cawangan pembangunan, dan kemudian gabungkan semula cawangan pembangunan untuk membangunkan menggunakan pilihan --no-ff, dengan itu mengekalkan integriti cawangan tunggal.
PHP中文网2017-05-02 09:21:06
Ini ialah situasi ujian tempatan saya, menggunakan mod gabungan --no-ff untuk bergabung
巴扎黑2017-05-02 09:21:06
Adalah disyorkan untuk merujuk artikel ini yang saya baca pruf
http://fanyi.jobbole.com/2214/
Sebagai contoh, untuk cawangan hotfix, anda perlu mendaftar keluar ke cawangan yang dibangunkan dan bergabung pada penghujung
Cawangan Hotfix dibina daripada cawangan induk dan mesti digabungkan semula ke dalam cawangan pembangunan dan cawangan induk boleh dinamakan seperti ini: hotfix-*
Cawangan hotfix sangat serupa dengan cawangan keluaran pada tahap tertentu. Kedua-duanya bertujuan untuk mempersiapkan keluaran versi baharu, dan kedua-duanya tidak diketahui terlebih dahulu. Cawangan Hotfix adalah keperluan mendesak untuk menyelesaikan pepijat dalam produk berdasarkan persekitaran pengeluaran semasa dan mesti dibuat. Apabila versi produk tertentu mempunyai pepijat serius yang perlu diselesaikan segera, cawangan Hotfix perlu dibina daripada teg yang sepadan dengan versi pada cawangan induk, kerana teg ini menandakan versi produk
Buat cawangan hotfix
Cawangan Hotfix dicipta daripada cawangan induk. Sebagai contoh, produk dalam talian versi 1.2 semasa mempunyai masalah sistem disebabkan oleh pepijat pada bahagian pelayan. Tetapi tidak boleh dipercayai untuk membuat perubahan dalam cawangan yang dibangunkan, jadi kami perlu mencipta cawangan perbaikan terbaru dan mula menyelesaikan masalah:
$ git checkout -b hotfix-1.2.1 master
Switched to a new branch "hotfix-1.2.1"
$ ./bump-version.sh 1.2.1
Files modified successfully, version bumped to 1.2.1.
$ git commit -a -m "Bumped version number to 1.2.1"
[hotfix-1.2.1 41e61bb] Bumped version number to 1.2.1
1 files changed, 1 insertions(+), 1 deletions(-)
Jangan lupa untuk mengubah suai nombor versi selepas mencipta cawangan.
Kemudian selesaikan pepijat dan serahkannya sekali atau lebih.
$ git commit -m "Fixed severe production problem"
[hotfix-1.2.1 abbe5d6] Fixed severe production problem
5 files changed, 32 insertions(+), 17 deletions(-)
Tamatkan cawangan hotfix
Selepas menyelesaikan kerja, kod pepijat yang diselesaikan perlu digabungkan kembali ke cawangan induk, tetapi ia juga perlu digabungkan ke dalam cawangan pembangunan untuk memastikan pepijat telah diselesaikan dalam versi seterusnya. Ini seperti cawangan keluaran.
Mula-mula, gabungkan dan kemas kini cawangan induk, kemudian tandainya
$ git checkout master
Switched to branch 'master'
$ git merge --no-ff hotfix-1.2.1
Merge made by recursive.
(Summary of changes)
$ git tag -a 1.2.1
Nota: Anda boleh menggunakan parameter -s atau -u untuk menetapkan tandatangan teg untuk teg anda.
Seterusnya, gabungkan kod pembetulan pepijat ke dalam cawangan yang dibangunkan
$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff hotfix-1.2.1
Merge made by recursive.
(Summary of changes)
Mungkin terdapat beberapa pengecualian di sini Apabila cawangan keluaran wujud, cawangan hotfix perlu digabungkan ke dalam cawangan keluaran, bukan cawangan bangunkan. Apabila misi cawangan keluaran selesai, kod pembaikan pepijat yang digabungkan semula ke dalam cawangan keluaran akhirnya akan digabungkan ke dalam cawangan yang dibangunkan. (Apabila cawangan pembangunan perlu segera menyelesaikan pepijat ini dan tidak boleh menunggu sehingga akhir cawangan keluaran, anda boleh menggabungkan kod pembetulan pepijat ke dalam cawangan pembangunan dengan selamat. Ini juga mungkin).
Akhirnya padamkan cawangan sementara ini
$ git branch -d hotfix-1.2.1
Deleted branch hotfix-1.2.1 (was abbe5d6).