Đồng bộ hóa một ngã ba
Cài đặt
Trước khi bạn có thể đồng bộ hóa, bạn cần thêm một điều khiển từ xa trỏ đến kho lưu trữ ngược dòng. Bạn có thể đã làm điều này khi bạn rẽ nhánh ban đầu.
Mẹo: Đồng bộ hóa ngã ba của bạn chỉ cập nhật bản sao lưu trữ cục bộ của bạn; nó không cập nhật kho lưu trữ của bạn trên GitHub.
$ git remote -v
# List the current remotes
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)
$ git remote add upstream https://github.com/otheruser/repo.git
# Set a new remote
$ git remote -v
# Verify new remote
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)
upstream https://github.com/otheruser/repo.git (fetch)
upstream https://github.com/otheruser/repo.git (push)
Đồng bộ hóa
Có hai bước cần thiết để đồng bộ hóa kho lưu trữ của bạn với ngược dòng: đầu tiên bạn phải tìm nạp từ xa, sau đó bạn phải hợp nhất nhánh mong muốn vào nhánh cục bộ của mình.
Lấy
Tìm nạp từ kho lưu trữ từ xa sẽ mang lại các nhánh và các cam kết tương ứng của chúng. Chúng được lưu trữ trong kho lưu trữ cục bộ của bạn dưới các nhánh đặc biệt.
$ git fetch upstream
# Grab the upstream remote's branches
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/otheruser/repo
* [new branch] master -> upstream/master
Bây giờ chúng ta có nhánh chính của thượng nguồn được lưu trữ trong một nhánh cục bộ, ngược dòng / chính
$ git branch -va
# List all local and remote-tracking branches
* master a422352 My local commit
remotes/origin/HEAD -> origin/master
remotes/origin/master a422352 My local commit
remotes/upstream/master 5fdff0f Some upstream commit
Sáp nhập
Bây giờ chúng tôi đã tìm nạp kho lưu trữ ngược dòng, chúng tôi muốn hợp nhất các thay đổi của nó vào chi nhánh địa phương của chúng tôi. Điều này sẽ mang chi nhánh đó đồng bộ với thượng nguồn, mà không làm mất các thay đổi cục bộ của chúng tôi.
$ git checkout master
# Check out our local master branch
Switched to branch 'master'
$ git merge upstream/master
# Merge upstream's master into our own
Updating a422352..5fdff0f
Fast-forward
README | 9 -------
README.md | 7 ++++++
2 files changed, 7 insertions(+), 9 deletions(-)
delete mode 100644 README
create mode 100644 README.md
Nếu chi nhánh địa phương của bạn không có bất kỳ cam kết duy nhất nào, thay vào đó, git sẽ thực hiện "chuyển tiếp nhanh":
$ git merge upstream/master
Updating 34e91da..16c56ad
Fast-forward
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Mẹo: Nếu bạn muốn cập nhật kho lưu trữ của mình trên GitHub, hãy làm theo các hướng dẫn tại đây