Tiga orang membangun bersama-sama (contohnya, A, B, dan C), dan kemudian menyerahkan semua kod ke cawangan membangunkan Memandangkan projek itu berjalan dalam talian, semua kod yang diserahkan oleh A pada cawangan membangunkan perlu digabungkan ke dalam cawangan mater, dan yang dikemukakan oleh B dan C Tanpa mengira kod, bagaimana untuk melaksanakan ini?
Pertama sekali, saya perlu mengatakan bahawa proses pembangunan ini bermasalah.
Jika ABC membangunkan fungsi bebas secara berasingan, maka mereka harus menggunakan cawangan mereka sendiri. Dengan cara ini, sangat mudah untuk mengurus dan menyelenggara, dan tidak akan ada masalah pelik seperti itu.
Kemudian, bagaimana untuk memenuhi keperluan aneh anda:
Gunakan git log --author=... --format='%H' commit-range untuk mengetahui nombor komit
Kemudian paip ke arahan rev dalam susunan terbalik, kemudian gelung melaluinya, dan git cherry-pick komit satu demi satu ke cawangan induk anda
Tiada ganjaran, dan saya terlalu malas untuk menulis pesanan tertentu. Lagipun, jika anda memberikan arahan yang lengkap, ia mesti boleh dilaksanakan selepas mengujinya sendiri. Persekitaran ujian terlalu menyusahkan untuk disediakan. Semak dokumentasi dan cuba sendiri.
Memandangkan mereka bersama-sama diserahkan kepada cawangan yang dibangunkan, A pasti akan menarik kod B dan C, dan bergabung boleh menolaknya Bagaimana untuk memisahkannya selepas ia dijadikan botol air?
Satu-satunya cara ialah melihat log dan perbezaan serta mengasingkannya secara manual.
Memandangkan ABC telah diserahkan dan digabungkan menjadi pembangunan, tidak ada cara untuk membezakan ABC, bukan? Jika ditentukan bahawa tiada masalah dengan kod A, bolehkah kita menyerahkan terus kod yang perlu digabungkan dalam cawangan A untuk dikuasai?
1. Klonkan projek dari gudang terpencil dan letakkan di gudang tempatan.
2 Buat cawangan baharu pada cawangan induk fail ini dengan nama yang sama dengan cawangan A di gudang jauh. Jika anda menggunakan Git, adalah disyorkan untuk menggunakan checkout -b 'Nama cawangan': buat dan masukkan terus cawangan ini.
3 Di cawangan baharu ini, tarik cawangan A dari gudang terpencil dan serahkan ke gudang tempatan.
4 Beralih ke cawangan induk, gabungkan cawangan yang baru dibuat, dan kemudian serahkan.
Mungkin terdapat dua pelaksanaan khusus seperti ini:
Iaitu, anda menarik cawangan secara tempatan untuk pembangunan, dan kemudian menggabungkannya terus dari tempatan kepada induk tanpa melalui cawangan membangunkan (tetapi ini tidak sepatutnya digunakan, anda perlu memastikan bahawa kod tempatan anda). konsisten dengan yang berkembang
Cara lain ialah B dan C hanya boleh mengalih keluar baris kod mereka sendiri dan kemudian menggabungkannya
Akhir sekali, saya rasa operasi git seperti ini mungkin masih perlu dianalisis berdasarkan model perniagaan dan pembangunan anda, jadi jawapan yang diperoleh di atas mungkin tidak semestinya memenuhi spesifikasi pembangunan anda.
1. Jika A adalahcabang potongdan digabungkan menjadi pembangun selepas pembangunan, anda boleh menggabungkan kod dalam cawangan pembangunan dalam induk (jika pembangunan tidak mahu kod BC, anda boleh melancarkan semula nombor versi asal yang tidak terikat, gabungkan kod A , dan kemudian master Merge)
.2 Jika A adalahpembangunan setempatserahkan terus kepada dev Jika tidak banyak penyerahan, anda juga boleh terus ceriPilih penyertaan yang dihantar oleh A dalam induk dengan melihat log