Làm thế nào để có được những thay đổi của họ giữa những cuộc nổi loạn của Git?


349

Tôi có các nhánh xung đột, nhánh2 phân nhánh từ nhánh1.

Giả sử khi nổi loạn branch2hiện tại branch1, trong khi giải quyết xung đột, tôi quyết định lấy một số (không phải tất cả) các branch1tệp "của họ" (tức là ) như hiện tại. Làm thế nào để làm điều đó?

Tôi đã thử:

git checkout branch1:foo/bar.java
fatal: reference is not a tree: TS-modules-tmp:foo/bar.java

git checkout refs/heads/branch1:foo/bar.java
fatal: reference is not a tree: refs/heads/TS-modules-tmp:foo/bar.java

41
Lưu ý: nếu bạn đang khởi động lại nhánh 2 lên nhánh1, thì việc phát lại xảy ra liên quan đến nhánh1, vì vậy "của họ" thực sự là nhánh2 và "của chúng ta" là nhánh1. git.661346.n2.nabble.com/ từ
Mr Fooz


1
Điều này chỉ tốn của tôi khoảng 20 giờ làm việc siêng năng. Tôi thành thật nghĩ rằng "của chúng ta" sẽ luôn là bản sao làm việc.
Theodore R. Smith

Câu trả lời:


496

Bạn muốn sử dụng:

git checkout --ours foo/bar.java
git add foo/bar.java

Nếu bạn rebase một chi nhánh feature_xchống lại master(tức là chạy git rebase mastertrong khi chi nhánh feature_x), trong rebasing oursđề cập đến mastertheirsđến feature_x.

Như đã chỉ ra trong các tài liệu git-rebase :

Lưu ý rằng hợp nhất rebase hoạt động bằng cách phát lại từng cam kết từ nhánh làm việc trên đỉnh của nhánh. Bởi vì điều này, khi một cuộc xung đột hợp nhất xảy ra, phía chúng tôi đã báo cáo vì chúng tôi là loạt phim nổi loạn cho đến nay, bắt đầu với <thượng nguồn> và của họ là nhánh hoạt động. Nói cách khác, các bên được hoán đổi.

Để biết thêm chi tiết đọc chủ đề này .


0

Nếu bạn muốn kéo một tập tin cụ thể từ một chi nhánh khác, hãy làm

git checkout branch1 -- filenamefoo.txt

Điều này sẽ kéo một phiên bản của tệp từ một nhánh vào cây hiện tại


35
Đây có lẽ sẽ là một ý tưởng tồi ở giữa một cuộc nổi loạn vì nó sẽ kéo tập tin từ đầu chi nhánh không ở điểm đầu tách ra mà bạn sẽ ở trong trạng thái
nổi loạn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.