Viet Dev

Cover image for Git - Một số trường hợp khi làm việc nhóm
Tuan for Unicloud Group

Posted on

Git - Một số trường hợp khi làm việc nhóm

Git - Một số trường hợp khi làm việc nhóm

Trường hợp 1: Người khác push code, thêm file vào branch mình đang code

Dùng git pull để đồng bộ code về

git pull
Enter fullscreen mode Exit fullscreen mode

Khi sử dụng mặc định lệnh git pull hệ thống sẽ lấy code từ remote tại
branch chỉ định (local branch hiện tại) về và thực hiện merge ngay tại
đó.

Trường hợp 2: Xây dựng module riêng, không làm ảnh hưởng đến source code chính của team

Tạo branch mới và code trong đó

git branch <name_branch>
git checkout <name_branch>
Enter fullscreen mode Exit fullscreen mode

Trường hợp 3: Push code sang branch khác

Từ branch featureA push code sang branch featureB

Nếu không có branch featureB, hệ thống sẽ tự tạo featureB và push vào.

git push origin featureA:featureB
Enter fullscreen mode Exit fullscreen mode

Nếu ở Github, sau khi push hệ thống sẽ tạo một merge request bằng việc
click vào nút Compare & pull request tại trang github.

Ở Gitlab, sau khi push terminal sẽ tạo một link merge request để người
dùng có thể thực hiện merge request.

Github:

mergeRequest

Gitlab:

gitLabMergeRequest

Trường hợp 4: Module từ branch của bạn đã hoàn thành và sẵn sàng dùng cho source code chính của team

Trong branch GitLab của bạn, nhấn vào Create merge request để gửi
yêu cầu merge vào branch master (mặc định).

pullRequest

Trường hợp 5: Merge branch B vào branch A

git checkout featureA
git merge featureB
Enter fullscreen mode Exit fullscreen mode

Trường hợp 6: Đã commit nhưng quên thêm một số file và không muốn commit lại

git commit -m "first commit"
git add index.html
git commit --amend --no-edit
Enter fullscreen mode Exit fullscreen mode

Trường hợp 7: Lấy lại code từ các commit trước

Xem lại lịch sử tất cả commit

git log
Enter fullscreen mode Exit fullscreen mode

historyCommit

Lấy code từ commit về, ví dụ ở đây mình lấy code từ commit "add
SSHKey.png from README.md":

git checkout 24a4b438e7ee79fa3eafcde3dccc479c4dce4df
Enter fullscreen mode Exit fullscreen mode

Sau khi chỉnh sửa xong, tạo một branch và checkout qua branch đó

# Sử dụng checkout -b để vừa tạo branch vừa checkout. Rất tiện.
$ git checkout -b <name branch>
Enter fullscreen mode Exit fullscreen mode

Cuối cùng, thực hiện add và commit lại bình thường.

git add .
git commit -m 'your commit here'
Enter fullscreen mode Exit fullscreen mode

Lúc này code mới của bạn đang ở branch vừa mới tạo. Bạn có thể giữ
nguyên branch đó hoặc thực hiện merge vào branch cũ của mình.

Trường hợp 8: Lấy lại code từ các commit trước

Mô tả: trường họp bạn đã commit branch-A và cả branch-B

# Đang ở branch-A
$ git add .
$ git commit -m 'commit A'
# Commit thêm branch-B
$ git checkout branch-B
$ git cherry-pick branch-A
# Commit của branch-A sẽ được add và merge vào branch-B.
Enter fullscreen mode Exit fullscreen mode

Trường hợp 9: SubModule

Submodule giúp bạn mang 1 repo khác (repo phụ) bỏ vào repo đang làm
việc. Điều này giúp việc tái sử dụng code hiệu quả hơn.

$ git submodule add <link> <path>
# example
$ git submodule add git@github.com:TommyGitHubs/Test.git ./internal/cropbase
Enter fullscreen mode Exit fullscreen mode
  • Hệ thống sẽ tạo một đường dẫn thư mục theo path để chứa submodule.

  • Việc bạn xây dựng trên đây sẽ không ảnh hưởng đến repo phụ (gốc).

addSubModule

Top comments (0)