12/08/2018, 16:53

10 mẹo hữu ích khi sử dụng git

Trong 1 vài năm trở lại đây, git đã phát triển rất nhanh, trở thành 1 hệ thống quản lý version code (version control system) phổ biến, được sử dụng bởi rất nhiều lập trình viên trên nhiều ngôn ngữ lập trình khác nhau, với quy mô từ các project nho nhỏ, đến các project cực lớn (ví dụ project ...

  • Trong 1 vài năm trở lại đây, git đã phát triển rất nhanh, trở thành 1 hệ thống quản lý version code (version control system) phổ biến, được sử dụng bởi rất nhiều lập trình viên trên nhiều ngôn ngữ lập trình khác nhau, với quy mô từ các project nho nhỏ, đến các project cực lớn (ví dụ project Linux)

  • Trong bài này, tôi sẽ chia sẻ với các bạn 10 mẹo hữu ích khi sử dụng git

1. git log --no-merges

  • Lệnh git này hiển thị lịch sử các commit, tuy nhiên lệnh này bỏ qua các commit merge 2 branch hoặc các commit giải quyết conflict khi merge. Lệnh này rất hữu ích khi chúng ta muốn kiểm tra nhanh các thay đổi đã hoàn thành trong project, lệnh này không hiển thị những commit merge branch

2. git revert --no-commit [commit]

  • Khi bạn sử dụng lệnh git revert, git sẽ quay lại một thời điểm commit cũ, và tự động tạo một commit mới với nội dung từ các commit cũ. Để tránh việc tự động tạo commit mới sau khi revert, chúng ta có thể dùng lệnh git revert --no-commit [commit] hoặc cách viết tắt git revert -n

3. git diff -w

  • Lệnh git diff hiển thị những thay đổi giữa 2 commit hoặc 2 file. Tuy nhiên, khi nhiều người làm việc trong cùng 1 project, có thể trình editor của mỗi người có setting khác nhau về các dấu cách, các tab, điều này dẫn đến việc có thể toàn bộ file code sẽ bị tính là thay đổi (dấu cách, tab). Để tránh tình trạng hiển thị các thay đổi không đáng có này, các bạn có thể sử dụng lệnh git diff -w.

4. git diff --stat

  • Lại một lệnh để hiển thị thay đổi trong git. Chúng ta sử dụng lệnh này khi muốn xem mỗi file thay đổi theo thời gian như thế nào. Các bạn có thể truyền vào 3 tham số: awidth để ghi đè lên chiều rộng đầu ra mặc định, name-awidth để đặt chiều rộng của file và count để giới hạn số dòng code của đầu ra

5. git reset --soft HEAD^

  • Reset head về một commit nhất định mà không động chạm vào file index và branch đang làm việc. Tất cả thay đổi được thực hiện sau lệnh commit này được chuyển vào stage “staged for commit”. Khi bạn cần, bạn chỉ cần chạy lệnh git commit để thêm chúng trở lại

git stash branch [branch-name] [stash]

  • Lệnh này tạo một branch mới với tên là branch-name và chuyển sang branch này. Sau đó các thay đổi trong stash được áp dụng vào branch này và drop stash. Nếu không chỉ tên stash cụ thể trong lệnh thì stash mới nhất sẽ được sử dụng. Lệnh này cho phép các bạn chuyển bất kỳ thay đổi nào đã lưu trong stash vào một môi trường an toàn hơn (một branch mới) để sau này có thể merge vào branch master

7. git branch -a

  • Lệnh này hiển thị list các branch remote và local. Các bạn có thể dùng thêm --merged để chỉ hiển thị các branch đã được hợp nhất hoàn toàn với branch master. Bằng cách này, các bạn có thể theo dõi các branch, và tìm ra được những branch nào không còn sử dụng nữa để có thể xoá bỏ.

8 . git commit --amend

  • Với lệnh này, các bạn có thể thay đổi commit trước của mình mà không phải tạo một commit mới khác. Nếu các bạn chưa đẩy code lên remote branch, các bạn có thể sử dụng lệnh này để thay đổi commit gần nhất, thêm code mới nhất vào commit hoặc thậm chí sửa message của commit

9. git pull --rebase

  • Khi bạn gõ lệnh này, đầu tiên git sẽ kéo những thay đổi của remote branch, sau đó sẽ rebase những commit chưa được đẩy lên vào đầu remote branch. Tuỳ chọn rebase được sử dụng để chắc chắn rằng lịch sử commit là tuyến tính bằng cách ngăn chặn những hợp nhất commit không cần thiết

10. git add -p

  • Khi bạn sử dụng lệnh này, thay vì ngay lập tức thêm tất cả những thay đổi, git sẽ lần lượt chạy qua từng thay đổi và hỏi chúng ta muốn làm gì với chúng. Khi sử dụng lệnh này, các bạn có thể lựa chọn chính xác những gì bạn muốn add để commit

Kết Luận:

  • Mình đã giới thiệu qua những mẹo hữu ích khi sử dụng git. Để rõ hơn về cách sử dụng của từng lệnh git các bạn có thể ấn vào tên tiêu đề của từng lệnh git.
  • Link tham khảo:
    • https://git-scm.com/docs/git-add#git-add--p
    • https://git-scm.com/docs/git-commit#git-commit---amend
    • https://git-scm.com/docs/git-pull#git-pull---rebasefalsetruepreserveinteractive
    • https://tutorialzine.com/2017/11/10-useful-git-tips
0