Cho repo Foo và repo Bar. Tôi muốn hợp nhất Bar với Foo, nhưng chỉ thành một nhánh riêng biệt, được gọi làbaz
.
git checkout -b baz
<= đặt quầy Bar ở đây.
Cho repo Foo và repo Bar. Tôi muốn hợp nhất Bar với Foo, nhưng chỉ thành một nhánh riêng biệt, được gọi làbaz
.
git checkout -b baz
<= đặt quầy Bar ở đây.
Câu trả lời:
Bạn không thể hợp nhất một kho lưu trữ vào một chi nhánh . Bạn có thể hợp nhất một nhánh từ kho lưu trữ khác thành một nhánh trong kho lưu trữ cục bộ của bạn. Giả sử rằng bạn có hai kho lưu trữ foo
và bar
cả hai đều nằm trong thư mục hiện tại của bạn:
$ ls
foo bar
Thay đổi vào foo
kho lưu trữ:
$ cd foo
Thêm bar
kho lưu trữ làm điều khiển từ xa và tìm nạp nó:
$ git remote add bar ../bar
$ git remote update
Tạo một nhánh mới baz
trong foo
kho lưu trữ dựa trên bất kỳ nhánh nào hiện tại của bạn:
$ git checkout -b baz
Hợp nhất nhánh somebranch
từ bar
kho lưu trữ vào nhánh hiện tại:
$ git merge --allow-unrelated-histories bar/somebranch
( --allow-unrelated-histories
không bắt buộc trước phiên bản git 2.9)
Cập nhật bằng các lệnh "đời thực":
Bắt đầu từ thư mục repo của bạn, đảm bảo rằng bản sao làm việc của bạn sạch sẽ (không có tệp nào bị thay đổi, thêm hoặc xóa).
Tạo một chi nhánh mới:
git checkout -b <my-branch>
Thêm điều khiển từ xa phụ, sau đó tìm nạp nó:
git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update
Hợp nhất một trong các chi nhánh của họ vào chi nhánh hiện tại của bạn:
git merge <repo-name>/<their-branch>
Nếu bạn không biết <their-branch>
mình muốn cái nào, hãy bắt đầumaster
Nếu bạn chắc chắn muốn chấp nhận tất cả các thay đổi từ xa và tránh xung đột ( ghi đè lên ) thì bạn có thể chỉ định -X theirs
làm tùy chọn chogit merge
trong bước cuối cùng.
Nếu bạn muốn thêm nó vào một thư mục con thì có lẽ bạn nên sử dụng mô-đun con git
Sử dụng hướng dẫn từ larsks, tôi đã có thể thực hiện việc này bằng SourceTree.
--allow-unrelated-histories
lệnh git merge.