(Lớp BootCamp Sáng 12 - Năm 2024 - Khoá Front-End)
-
Version Control System
-
Git và GitHub
-
Cài đặt Git
-
Khởi tạo dự án mới
-
Tham gia vào dự án có sẵn
-
Phát triển dự án
-
Branch
Bài làm của Trương Thục Vân.
git init
- Lệnh này khởi tạo một Git repository mới trong thư mục hiện tại. Sau khi chạy lệnh này, một thư mục ẩn .git sẽ được tạo ra.
git remote add origin https://github.com/MeiCloudie/demo_git.git
-
Lệnh này thêm một remote repository mới có tên là origin, liên kết đến URL chỉ định.
-
Remote repository là một phiên bản Git repository được lưu trữ trên mạng hoặc một máy chủ khác.
-
Đường dẫn "https..." là đường dẫn đến repository hiện tại của bạn.
git add .
- Lệnh này thêm tất cả các thay đổi trong thư mục hiện tại vào staging area (khu vực chờ để commit).
git status
- Lệnh này hiển thị trạng thái của working directory và staging area, cho biết những thay đổi nào đã được staged, chưa được staged và những file nào chưa được theo dõi.
git commit -m "Initialize project"
- Lệnh này tạo một commit mới với thông điệp "Initialize project". Commit là một ảnh chụp của tất cả các thay đổi đã được staged.
git log
- Lệnh này hiển thị lịch sử các commit trong repository, bao gồm thông tin về tác giả, ngày tháng và thông điệp commit.
git push -u origin master
hoặc
git push -u origin main
-
Lệnh này đẩy các commit từ nhánh master/main lên remote repository origin.
-
Tham số -u thiết lập nhánh upstream cho nhánh hiện tại, nghĩa là trong các lần push sau, chỉ cần sử dụng git push mà không cần chỉ định remote và nhánh.
-
LƯU Ý: Lệnh push sẽ đi kèm với -u origin + tên nhánh => THỰC HIỆN CHO LẦN ĐẦU TIÊN PUSH!
-
Các lần push sau chỉ cần câu lệnh đơn giản là:
git push
Sau khi code xong 1 phần sẽ thực hiện:
git add .
=>git commit -m "nội dung commit"
=>git push
git branch
- Lệnh này liệt kê tất cả các nhánh hiện có trong repository, với nhánh hiện tại được đánh dấu bằng dấu sao (*) hoặc màu xanh.
git branch nhanh1
- Lệnh này tạo một nhánh mới có tên "nhanh1" (chỉ tạo mà CHƯA nhảy qua nhánh nhanh1).
git checkout nhanh1
- Lệnh này chuyển đổi sang nhánh nhanh1 (nghĩa là khi sử dụng
git branch
nhánh hiện tại sẽ được chuyển qua "nhanh1").
git checkout -b nhanh1
- Lệnh này tạo một nhánh mới có tên "nhanh1" và chuyển đổi sang nhánh này ngay lập tức (câu lệnh kết hợp 2 thao tác trên).
git clone https://github.com/MeiCloudie/demo_git.git
-
Lệnh này sao chép một repository hiện có từ một remote repository (URL chỉ định) về máy tính của bạn.
-
Nó sẽ tạo một thư mục mới có cùng tên với repository và sao chép tất cả các file và lịch sử commit vào đó.
-
Đường dẫn "https..." là đường dẫn của repository bạn muốn clone về.
git merge nhanh1
-
Lệnh này gộp các thay đổi từ nhánh "nhanh1" vào nhánh hiện tại.
-
Check nhánh hiện tại bằng lệnh
git branch
. -
Nếu có conflict (xung đột), Git sẽ yêu cầu bạn giải quyết xung đột trước khi hoàn thành merge.
- Khi gộp hai nhánh lại với nhau, nếu có thay đổi khác nhau trên cùng một dòng của cùng một file, hoặc nếu một nhánh thay đổi một file mà nhánh kia đã xóa, thì sẽ xảy ra conflict.
- Xem các file bị conflict:
git status
- Chỉnh sửa file để giải quyết conflict:
-
Các phần bị conflict sẽ được đánh dấu bằng các ký hiệu như
<<<<<<<
,=======
, và>>>>>>>
. Bạn cần chỉnh sửa các phần này để giữ lại thay đổi mong muốn. -
Bên trên các phần đó sẽ có các option để chọn cập nhật.
- Thêm file đã giải quyết conflict vào staging area:
git add <file>
- Với
<file>
là file (tệp) bạn vừa thay đổi và muốn cập nhật lại.
- Hoàn thành merge:
git commit -m "Resolve Conflict and Merge Code"
- Như vậy là đã giải quyết được các xung đột code, sau khi commit có thể sẵn sàng push.
git pull origin master
-
Lệnh này kéo các thay đổi từ nhánh master (hoặc có thể là nhánh
main
, hoặc nhánh hiện tại cần pull) của remote origin và tự động thực hiện merge vào nhánh hiện tại. -
Nếu có conflict, bạn cần giải quyết conflict như đã hướng dẫn ở trên.
git rebase <branch>
-
Lệnh này áp dụng lại các commit của nhánh hiện tại lên trên commit mới nhất của
<branch>
. Nó giúp giữ lịch sử commit gọn gàng hơn so với merge. -
Giải quyết conflict khi rebase:
- Khi xảy ra conflict, Git sẽ dừng lại và yêu cầu bạn giải quyết conflict:
git status
- Chỉnh sửa file để giải quyết conflict và thêm vào staging area:
git add <file>
- Tiếp tục rebase:
git rebase --continue
- Hủy bỏ rebase nếu cần thiết:
git rebase --abort
Đã cập nhật xong!
Mình liệt kê thêm một số link để có thể tham khảo thêm về các câu lệnh của Git. Ưu tiên sử dụng lệnh thay vì các UI trên các IDE nhé!