QC

Sử dụng git

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"

  + Cách 2:
git commit -m "Title > 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


Cách sử dụng :
5.1 : git pull : vd cụ thể như sau : git pull origin main
- Check nhánh tên là main ---> kéo code về.

git pull = git fetch + git merge có nghĩa là kéo code trên git về và merge code local lại.
Note : bạn và đồng nghiệp cùng sửa chung 1 file => có hiện tượng xung đột xảy ra =>
conflict.

5.2 git merge.

- Code mình có nhánh chính. giờ mình muốn phát triển nhánh mới dùng lệnh checkout
sang nhánh mới làm việc mà không ảnh hưởng nhánh master.
- Lệnh tạo nhánh mới : git checkout[khoảng cách]- b [tênnhánh]
Ví dụ cụ thể : git checkout -b nhanh1
sau đó bạn dùng lệnh : git branch
nó sẽ hiển thị ra nhánh : main và nhanh1.

$ git merge nhanh1
$ git push --set-upstream origin main

5. GIẢI QUYẾT MÂU THUẨN git conflict
Code bị conflict khi code trên local branch khác

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

1 SỐ LỆNH THƯỜNG DÙNG :

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 đó ấn q để thoát
  • git blame my_file Hiển thị tên và thời gian người đã sửa file my_file củ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 resetgit 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 commitgit 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 commit gầ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ụng git 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_commitHEAD thường sử dụng để hủy bỏ mọi thay đổi về lần commit gần nhất. checkout là 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ùng checkout với tên nhánh thay vì tên commit, HEAD sẽ chuyển sang nhánh được chỉ định. Đây là cách sử dụng phổ biến của lệnh checkout
  • git revert my_commit Hoàn tác các thay đổi trong commit có tên my_commitrevert sẽ tạo ra 1 commit mớ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 .gitignore sẽ 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.

















Error No module Onnx opencv

 Error No module Onnx opencv Lệnh :  pip install onnx==1.9 Mã lỗi PS F:\opencv_e\2.video> & C:/Users/youtb/Anaconda3/envs/virtualenv/...