Giới thiệu
Git là gì?
Bạn đang làm việc nhóm và cần thuyết trình về một chủ đề nào đó. Các thành viên trong nhóm đề có thể chỉnh sửa và đóng góp ý kiến
3 bản đóng góp:
- Git dev
- Git Stag: cho kiểm thử
- Git production: Sẵn sàng cho người dùng cuối
Sử dụng git có tác dụng:
- Nhiều người có thể đóng góp vào một dự án
- Theo dõi thay đổi
- Kiểm soát truy cập
- Quản lý phiên bản
- Sao lưu và khôi phục
Git Architect
- Working: là nơi chứa các file chỉnh sửa của bạn
- Staging: lựa chọn file và cân nhắc nó
- Local: Những file chọn và cam kết đẩy lên
Lệnh Git
git merge --allow-unrelated-histories branch1 branch2: lệnh gộp 2 nhánh của remote và máy tính
- Git status: hiển thị trang thái của thư mục hiện tại
- Git log: hiển thị lịch sử commit
- Git init [repo_name]: tạo kho lưu trữ trống
- Git clone (Repo_name): tải code về
- Git _ config-l :xem cấu hình hiện tải
quy trình up code đầy đủ:
- Git init
- Ls: xem các file để up
- Git status: xem trạng thái(đỏ là chưa đc git add.)
- Echo “nội dung” > README.md: hình như file readme nó tự tạo sau câu lệnh này
- git commit -m “ …“: thêm comment khi commit
git log: thông tin lần commit lần nhất và ghi chú -m nãy(xem lại lịch sử)
Git diff: so sánh sự khác nhau
Git status: xem lại thay đổi file(modified: có thay đổi trong file và đều màu đỏ)
- Cấu hình file gitignore để bỏ qua các file ko cần giám sát
bỏ qua file log
*.log: bỏ qua các file.log
bỏ qua thư mục
Mode1/
- touch .gitignore: tạo file .gitignore
tương tác với remote repository(làm vc với nhóm)
- Git init –bare: tạo 1 centrel Reposi
- Git clone [repo_name][clone_name]: sao chép liên kết repo_name
- Git fetch: lấy các thông tin về commit mới từ centre
- Git pull : lấy toàn bộ dữ liệu commit mới về local repo
- Git push:
Git config –local user.name ‘developer_1’:cấu hình cho người làm ra hành động đó
Git fetch: kiểm tra cái thông tin của mình và của centrelRepo có thay đổi gì ko
- làm sao để dev2 biết có thông tin gì trên centrelRepo
Git fetch
Để kéo về dùng git pull: file ở centrelRepo kéo về Dev2
- chuyển đổi giữa các commit trong git
Giúp cta quay lại bất kỳ commit nào
- Git log: xem lại lịch sử có show ra đoạn mã màu vàng
- Git checkout <tầm5 6 ký tự đoạn mã vàng> duy chuyển giữa lần commit ở đoạn mã vàng(head) là cái hiện tại và tiếp tục làm việc từ đó
- q! : thoát chế độ không nhập đc lệnh trong git
Git diff hiển thị những thay đổi của commit trước đó
Git rm <file_name>: xóa file
Git mv <file_name_olf> <file_name_new>: đổi tên
Git checkout <file_name>: hoàn tác thao tác trước đó về commit gần nhất
Git reset: ví dụ khi add file nào đó mà nó đã hiện lên trạng thái màu xanh(đã cam kết rồi ) thì mình dùng lệnh này để hủy cam kết đó thành màu đỏ
Git reset head <file_name>: hủy cam kết 1 file bất kỳ
Git commit –amend: mở đoạn văn bản mô tả sửa nó, đoạn này sẽ đc ghi đè lên commit trước đó
Git revert: tạo ra 1 commit mới trái ngược với các commit trước đó(ko có nghĩa là khôi phục). Nếu thêm head vào thì nó sẽ khôi phục commit trước đó
Git log -n: xem id_commit thứ n trước đó
Working with branch
git branch <name_branch>: tạo 1 nhánh
Git checkout <name_branch>: chuyển sang 1 nhánh khác
Git checkout -b <name_branch>: tạo 1 nhánh và chuyển sang nhánh đó luôn
Git branch -d <name_branch>: xóa nhánh
Git merge <name_branch_merge>: hợp branch đã chọn kia vào branch hiện tại
Trường hợp xảy ra xung đột: chỉ cần vào file có xung đột sau đó loại bỏ phần giống nhau giữ lai phần head là ok
Git log –graph –oneline: để xem các thay đổi dưới dạng đồ thị giúp hiểu rõ hơn các trường hợp commit
Git remote -v : kiểm tra repository hiện tại đang làm việc
Git remote show origin:câu lệnh hiện thị chi tiết hơn câu lệnh ở trên
Git rebase -i: thì nó hiện ra cái bảng tất cả commit trước đó và mình có thể xem 1 cách chi tiết nó
Git WorkFlow
- Nhánh ‘main’ chứa code môi trường người dùng
- Nhánh ‘devolop’ chứa code môi trường phát triển
- Nhánh ‘features’ được tạo từ nhánh develop chứa code các chức năng
- Nhánh ‘release’ chứa code môi trường thử nghiệm
- nhánh ‘hotfix’ được tạo ra từ nhánh main