By : Huỳnh Quốc Anh
1 Có 2 loại repository:
Local repository: Repo trên máy tính
Remote repository: Repo trên server như Github ...
2. Các khu vực làm việc với Git
Chúng ta sẽ có các khu vực theo thứ tự dưới đây
-Khu vực làm việc: Chính là nơi chúng ta đang code, vẫn ở local
+ Chuyển sang staging dùng : git add . ( git + khoảng cách + add + khoảng cách + . )
+ Hoặc vd dụ cách 2 Chuyển sang staging : git add index.html app.js add nhiều file
+ git add index.html (add 1 file_.
-Khu vực staging: Sau khi dùng git add thì file sẽ
được đưa lên khu vực này, vẫn ở trên local
+ Khôi phục 1 file từ staging về khu vực code
- git reset index.html các trường hợp khác tương tự.
-Khu vực committed: Sau khi dùng git commit thì file từ staging sẽ được đưa lên đây, cũng vẫn ở trên local.
+ Commit code với git commit.
-Câu lệnh dưới đây sẽ đính kèm các title khi bạn thực hiện những thay đổi trong dự án. Nó có tác dụng với những file trong khu vực Staging.
-Lệnh : git commit -m "Tôi thay đổi dòng này vì nó xảy ra tình trạng không thoát ra được vòng lặp"
-Trong trường hợp bạn muốn đính kèm thêm description để mô tả thêm cho title thì bạn có thể dùng 2 cách:
+ Cách 1:
git commit -m "Title" -m "Description"
-Khu vực remote (gọi origin cũng được): Sau khi dùng git push sẽ file ở commited lên đây, bây giờ file của bạn đã đưa lên trên server.
$ ssh-keygen -t ed25519 -C "youtblife@gmail.com"
3. Mô hình hoạt động của Git
4. Các câu lệnh thường dùng Cá nhân.
git status
git add
git commit
git push
5. Làm việc nhóm
Note :Nhánh code : branch.
git pull = git fetch + git merge
git merge
git conflict
git checkout branch/commit
xung đột với remote branch, vấn đề này xảy ra khi có ai đó đã cập nhật 1 đoạn code trên remote branch và bạn cũng cập nhật đoạn đó trên local branch.
Lúc này git sẽ không cho phép bạn push code lên, bạn phải pull code trên remote branch về và lựa chọn xem nên chọn những đoạn code nào.
Thứ tự thường dùng:
- Pull code mới nhất trên remote branch về bằng git
pull
- Giải quyết conflict bằng tay, thảo luận với những người liên quan đoạn code xung đột nên chọn cái nào.
- Add file xung đột vào khu vực staging git add TenFile. Hoặc có thể git add . cũng được
Commit cho những file xung đột đó và push code lên
Kiểm tra những thay đổi
Hãy nhìn vào việc kiểm tra những sự thay đổi trước.
- git diff xem các tập tin được thay đổi. Mỗi tên tệp có thể được thêm vào để hiển thị các thay đổi của tệp đó.
- git log Xem toàn bộ lịch sử commit. Cũng có thể sử dụng cho một file với cú pháp
git log -p my_file. Sau đó ấnqđể thoát - git blame my_file Hiển thị tên và thời gian người đã sửa file
my_filecủa bạn. - git reflog Hiển thị log các thay đổi ở máy tsính của bạn. Rất tốt để tìm kiếm dữ liệu bị mất. Kiểm tra mọi thứ với Git không phải là quá khó hiểu. Ngược lại, Git cung cấp rất nhiều tùy chọn để loại bỏ và hoàn tác các sự thay đổi trên file của bạn.
Hoàn tác
git reset, git checkout, và git revert được sử dụng để hoàn tác tất cả các thay đổi trên file của bạn. git reset và git checkout có thể sử dụng cả khi đã commit và khi đang ở trạng thái chưa commit. git revert chỉ sử dụng khi đã thực hiện commit. Nếu bạn đã thực hiện commit trên máy của mình mà chưa merge commit vào nhánh làm việc trên git hub thì bạn có thể sử dụng bất kỳ lệnh nào trong số các lệnh trên. Nếu bạn đã merge và cần xóa một commit ở nhánh làm việc trên git hub thì bạn cần dùng lệnh git revert . Mỗi lệnh trên đều có những tùy chọn khác nhau. Đây là những cách sử dụng phổ biến nhất.
- git reset --hard HEAD Hủy bỏ những thay đổi và trở về trạng thái
commitgần nhất. Chỉ định một nhánh khác thay vì HEAD để hoàn tác những thay đổi về nhánh mà bạn chọn. Khi sử dụnggit reset --hard [tên commit]hãy chắc chắn rằng bạn không hủy bỏ một nhánh mà đồng nghiệp của bạn đang sử dụng. - git checkout my_commit Xóa bỏ mọi thay đổi về lần commit có tên
my_commit.HEADthường sử dụng để hủy bỏ mọi thay đổi về lầncommitgần nhất.checkoutlà cách tốt nhất để hoàn tác khi làm việc ở local. Nó không gây ảnh hưởng đến lịch sửcommitở nhánh mà các đồng nghiệp cùng dự án đang dùng. Nếu bạn dùngcheckoutvới tên nhánh thay vì tên commit,HEADsẽ chuyển sang nhánh được chỉ định. Đây là cách sử dụng phổ biến của lệnhcheckout - git revert my_commit Hoàn tác các thay đổi trong commit có tên
my_commit.revertsẽ tạo ra 1commitmới sau khi hoàn tác các thay đổi.
Đôi khi bạn chỉ muốn xóa các tập tin ở trạng thái untracked trong thư mục của bạn. Ví dụ: có thể bạn đã chạy một dòng code tạo ra nhiều loại tệp khác nhau mà bạn không muốn dùng trong repo của mình.
- git clean -n Xóa những file unstrack trong thư mục của bạn Theo mặc định các file có trang thái unstrack được thêm trong file
.gitignoresẽ không bị xóa, nhưng điểu này có thể thay đổi được. Trên đây là các lệnh bạn có thể dùng để xóa mọi thay đổi trong Git. Bây giờ hãy tìm hiểu thêm các lệnh để sắp xếp mọi thứ gọn gàng hơn.
