Người thực hiện: Giang Quoc Hao
Nguồn tham khảo Git, GitHub: Youtube
Cách viết file .md: Youtube
Git là thẻ nhớ cho dự án, lưu các phiên bản của dự án.
- Repository (repo) : nơi lưu trữ.
- Branch : nhánh.
- Conflict : xung đột.
- Local : những gì có ở trên máy.
- Remote : các thứ bên ngoài.
git config -g user.name qhao
git config -g user.email qhaofdev@gmail.com
git config -g user.name : kiểm tra cấu hình
-
git remote add origin link-repo: đặt tên cho link gốc. -
git init: khởi tạo 1 dự án thành git repository. -
git add .: chuẩn bị lưu lại thời điểm hiện tai của dự án. -
git commit -m ‘message’: chính thức lưu + ghi chú lần commit đó có ý nghĩa gì. -
git push origin master: đẩy từ local repo → remote repo.
Note: 1 pull request chỉ nên có 1 commit.
Trường hợp: khi đã commit và push code lên, nhưng lại thiếu mất chức năng. Sau khi code thêm 1 số file thay đổi, thì dùng:
-
git commit —amend: nó sẽ ghi đè lại với cái commit trước đó. -
git push -f origin master: để push lại với pull trước đó.Esc + :wqđể thoát khi dùnggit commit --amend.
→ Mục đích 6 & 7: Tránh việc dư thừa commit.
git pull = git fetch + git merge
- Example:
git pull origin master - Lưu ý: các branch khác phải merge code vào master ở trên remote thì mới dùng
git pull origin masterđể cập nhật lại code mới nhất từ trên remote. git fetch: Lấy tất cả các thay đổi từ kho lưu trữ từ xa (remote) mà chưa có trong kho lưu trữ cục bộ (local). Điều này bao gồm các commit mới, các nhánh mới, và các thay đổi khác.git merge: Sau khifetch,git pullsẽ tự động gộp (merge) những thay đổi mới từ kho lưu trữ từ xa vào nhánh hiện tại mà bạn đang làm việc. Nếu có xung đột (conflict) trong quá trình gộp, bạn sẽ cần phải giải quyết xung đột đó trước khi hoàn thành việc gộp.
git rebase(Teamwork thực tế)
- Trường hợp: có 3 branch master, login, cart. A code login xong và gộp vào nhánh master rồi. B code cart muốn sử dụng component trong login, nhưng lại chưa có component đó ở trong cart →
git rebase: gộp code lại tương tựgit merge. → B đã có component ở login để sử dụng trong cart. - Example: Branch cart:
git rebase master.
Branch
git branch: kiểm tra branch mặc định.git checkout {nameBranch}: chuyển sang branch khác.git checkout -b {nameBranch}: tạo ra 1 branch mới với tên branch là nameBranch.git branch -d {nameBranch}: xóa 1 branch.git checkout -b {nameBranch} {id-log}: khôi phục lại branch đã bị xóa với id cũ.
remote
git remote -v: show tất cả các origin.git remote rm orgin: xóa origin.
log
git log --oneline~git reflog: Hiển thị tất cả các commit với id + branch + commit,…
Đang cập nhật
-
remote → local (thường dùng hơn)
origin : https://github.com/repo.git
git clone {url repo}git push -u {url remote repo name} {url remote repo} : đẩy 1 branch lên remote repo.
Ex:
git push -u origin dev. Chỉ cần dùng lần đầu, còn lần sau chỉ cần git push.Nếu muốn clone 1 branch trên remote repo: git checkout master → git fetch origin → git checkout -b {branch name} origin/{branch name} git branch : kiểm tra lại các branch.
Pull request: gộp các branch lại trên remote repo → Trên local repo: muốn xem lại thay đổi → git pullGit Ignore: khi không muốn cho github theo dõi 1 file nào đó trong dự án. → Tạo file .gitignore → viết tên file vào trong .gitignore update git