Các khái niệm của GIT cần nắm
- remote repository: kho chứa code ở trên server
- local repository: kho chứa code trên máy tính người dùng
- upstream: remote repository gốc
- origin: remote repository fork từ upstream
- branch: nhánh
- fetch: lấy data từ upstream về local repository
- checkout: chuyển nhánh làm việc
- merge: hợp nhất các nhánh
- commit: lưu trữ thay đổi vào local repository
- push: đẩy thay đổi vào upstream
- pull request: yêu cầu merge từ branch X1 của repo Y1 vào branch X2 của repo Y2 (ví dụ: merge từ branch “fix-a-bug” của repo “icovn/spring-boot” vào branch “develop” của repo “spring-projects/spring-boot”)
Các bước dev cần làm trước khi thực hiện task
B1: fork branch develop của module cần tác động về origin của dev
B2: clone từ origin về local
git clone git@github.com:icovn/laravel-zipkin.git
B3: cấu hình upstream remote
cd go-strava
git remote add upstream https://github.com/mts88/laravel-zipkin.git
Các bước dev cần thực hiện khi được giao 1 task
B1: Đồng bộ dữ liệu từ upstream repo về origin repo
git fetch origin
git fetch upstream
git checkout develop
git merge upstream/develop
git push
B2: Tạo branch mới bắt đầu bằng id của task trên JIRA
git checkout -b 99-implement-a-feature
B3: Thực hiện code & unit test
B4: commit thay đổi vào local repo
git add .
git commit -m "commit message"
B5: push thay đổi lên upstream
git push origin 99-implement-a-feature
B6: Tạo PULL REQUEST
B7: Chờ PULL REQUEST được review
B8: Lặp lại các bước từ 3-7 (bỏ qua bước 6 khi đã có PULL REQUEST rồi) cho đến khi review ok
Các bước dev cần thực hiện khi đang làm muốn update code mới nhất từ upstream
git fetch origin
git fetch upstream
git checkout develop
#update local
git merge upstream/develop
#update origin
git push
git checkout 99-implement-a-feature
git merge develop