1. Các khái niệm git
- Khái niệm Repository: có 2 loại Repository là Local (máy cá nhân) và Remote (máy server của đội nhóm)
- Khái niệm Branch: Nhánh là công cụ để phát triển tính năng không bị chồng chéo lên nhau. Trong dự án, branch của dev phát triển là: origin develop (origin chỉ nhánh này ở trên remote repository)

- Khái niệm Commit: Mỗi Commit được ghi nhận lại thành 1 lần lịch sử trong git log. Mỗi commit của anh em cần được tính toán để mỗi commit đại diện cho 1 chức năng được lưu lại( ví dụ: 1 commit để sửa 1 bug)
- Khái niệm pull: Kéo code từ Server về local
- Khái niệm fetch: Khi thực hiện pull, merge nội dung của remote repository sẽ tự động được tiến hành. Tuy nhiên, cũng có trường hợp chỉ đơn giản muốn kiểm tra nội dung của remote repository mà không muốn merge. Những lúc như vậy hãy sử dụng fetch. Ngoài ra git fetch có thể lấy dữ liệu danh sách branch mới nhất từ server về.
- Khái niệm Stash: Khi AE muốn đổi nhánh, có 1 số thay đổi chưa được commit thì git sẽ không cho ae chuyển nhánh ⇒ phải lưu tạm bằng lệnh stash ⇒ khi quay lại nhánh cũ, cần get code từ stash đã lưu.
- HEAD là gì: HEAD giống như 1 loại con trỏ, đánh dấu nhánh hoặc commit hiện tại. Thường thì HEAD sẽ trỏ vào nhánh đang làm việc.
2. Các bài toán thường gặp với git
- Pull code về
- xóa Nhánh
- git branch -d <branchname>
- Tạo nhánh mới để code
- git branch [tên nhánh]
- git branch -b [tên nhánh]
- git checkout -b tên nhánh ⇒ tạo nhánh + chuyển sang nhánh đó luôn
- Đổi nhánh
- git checkout [tên nhánh/ id commit]