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ữ foovà barcả hai đều nằm trong thư mục hiện tại của bạn:
$ ls
foo bar
Thay đổi vào fookho lưu trữ:
$ cd foo
Thêm barkho 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 baztrong fookho 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 somebranchtừ barkho lưu trữ vào nhánh hiện tại:
$ git merge --allow-unrelated-histories bar/somebranch
( --allow-unrelated-historieskhô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 theirslà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-historieslệnh git merge.