Gần đây mình đã xây dựng một dự án cho khách hàng và khách hang sử dụng GitHub để quản lý source code. Mình thực hiện forked (clone source code) từ branch master của khách hàng về tài khoản GitHub của mình để tiến hành chỉnh sửa source code trên đó.
Một vài ngày sau, một sự thay đổi khác được thực hiện bởi một dev khác trên branch master của khách hàng. Vì vậy để tránh conflict với source code đã bị thay đổi bởi dev đó, mình cần phải update source code mới nhất từ branch master của khách hàng về bản fork trên tài khoản của mình.
Sau đây là cách mà mình tìm hiểu được và mình xin chia sẻ lại với đọc giả của trang vinasupport.com
1. Cấu hình Remote Repository cho tài khoản fork của bạn trên GitHub
Bước 1: Liệt kê danh sách remote repository của tài khoản fork của bạn.
$ git remote -v origin https://github.com/vinasupport/YOUR_FORK.git (fetch) origin https://github.com/vinasupport/YOUR_FORK.git (push)
Bước 2: Chỉ ra remote upstream repository sẽ được đồng bộ với tài khoản fork của bạn
$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
Bước 3: Xác nhận lại danh sách remote repository
$ git remote -v origin https://github.com/vinasupport/YOUR_FORK.git (fetch) origin https://github.com/vinasupport/YOUR_FORK.git (push) upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
2. Đồng bộ source code cho tài khoản Fork của bạn trên GitHub
Bước 1: Mở Terminal và thay đổi đường dẫn tới nơi chưa source code của bạn trên máy tính (Nơi bạn checkout source trên GitHub)
Bước 2: Fetch dữ liệu từ Upstream Repository
$ git fetch upstream 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/ORIGINAL_OWNER/ORIGINAL_REPOSITORY * [new branch] master -> upstream/master
Bước 3: Checkout branch master tài khoản Fork của bạn
$ git checkout master Switched to branch 'master'
Bước 4: Merge sự thay đổi giữa upstream/master với bản master branch trên máy tính của bạn.
git merge upstream/master 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
Bước 5: Push sự thay đổi lên branch trên GitHub
$ git push origin master
Nguồn: vinasupport.com
bài viết hay quá, mình đã thực hiện thành công <3 Cám ơn đội ngũ phát triển rất nhiều