Tôi đang sử dụng cách dòng git quản lý chi nhánh tại repo của tôi, như được mô tả trong: http://nvie.com/posts/a-successful-git-branching-model/git merge với --no-ff và --squash
Do đó, chuỗi các lệnh tôi nên sử dụng sẽ như sau:
git checkout mybranch
git pull --rebase origin develop
git checkout develop
git merge --no-ff mybranch
Tuy nhiên, có một điều mà tôi muốn làm khác đi, trong một số trường hợp:
tôi muốn giữ gìn tất cả các cam kết của tôi trên chi nhánh tính năng của tôi (mybranch
), nhưng có chúng gộp lại với nhau (hoặc đè bẹp) trong với một điểm khác biệt khi hợp nhất thành develop
.
Vì vậy, đây là những gì tôi nghĩ là chuỗi các lệnh nên là:
git checkout mybranch
git pull --rebase origin develop
git checkout develop
git merge --no-ff --squash mybranch
Liệu tôi có thể làm những điều sai trái nếu tôi được kết hợp với --no-ff
--squash
?
Tôi do dự để thử này ra bắt nguồn từ cách "đè bẹp" và "giữ gìn lịch sử" là yêu cầu trực giao - xem Squashing all of my commits (including merges) into one commit without altering history
lý do của tôi là tôi muốn giữ lịch sử trên một chi nhánh (mybranch
) và suqash trên một nhánh khác (develop
) -> vì những hành động này được thực hiện trong các nhánh riêng biệt, điều này là OK.
Tại sao bạn không chỉ cần thử nó. Bạn luôn có thể thực hiện một 'reset' cứng nếu nó không hoạt động. Chỉ cần thực hiện một nhánh tạm thời tại vị trí cũ. Đi tiếp. Thử nó. Bạn biết bạn muốn ... –