Tôi có hai thẻ trong git của tôi trong cùng một chi nhánh. Có ít nhất 5-6 cam kết giữa chúng. Làm thế nào tôi có thể tạo một bản vá duy nhất giữa hai thẻ để nó có thể được áp dụng cho một repo GitHub?Làm thế nào để tạo bản vá giữa hai thẻ với nhiều cam kết giữa chúng?
31
A
Trả lời
51
Bạn có thể tạo một diff đơn (patch) giữa hai thẻ bằng cách sử dụng sau đây
$ git diff tag1 tag2 -- > the-patch.diff
Thay tag1
và tag2
để các thẻ mà bạn muốn.
32
Bạn có thể tạo một bản vá duy nhất cho nhiều cam kết bằng cách sử dụng tùy chọn --stdout
và chỉ đạo các đầu ra vào một tập tin:
git checkout tag2
git format-patch tag1 --stdout > patch1to2.patch
+0
câu trả lời tuyệt vời. Giải quyết nó một cách rất rõ ràng và chính xác. +1 –
Btw, bởi tập tin vá Ý anh là một cái gì đó giống như những gì 'git định dạng patch' sản xuất ? – fajran
vâng tôi cần một tệp vá như lệnh [git format-patch] generate.Có thể bạn cho tôi biết cách hoạt động của hai thẻ này. – Rishi
Bạn có thể đè bẹp các cam kết đó thành một lần commit bằng cách sử dụng 'git rebase'. Sau khi bạn có một commit, bạn có thể sử dụng 'git format-patch' để tạo file patch của nó. – fajran