- vừa được xem lúc

Dùng Git Như Thế Nào Để Đời Bớt Khổ

0 0 4

Người đăng: Hữu Ngọc Tiên Sinh

Theo Viblo Asia

Chào anh em, năm mới chúc anh em một năm phát tài, vạn sự như ý nhé

Chuyện là dạo này mình gặp một số trường hợp các bạn fresher, intern cứ bị chật vật khi làm việc với Git. Nên hôm nay mình lại tiếp tục 1 bài viết nói về Git, tất nhiên không phải là giới thiệu git là gì, các lệnh command bla bla, vì đã có rất nhiều bài về những nội dung này. Bài viết hôm nay mình xin chia sẻ về những gì mình biết trong quá trình làm việc với Git

1. Tinh chỉnh Terminal

Mình là một người thuộc trường phái xài git bằng terminal, chứ không thích sử dụng các ứng dụng hỗ trợ như Source Tree. Vậy nên để dễ quan sát trạng thái source code, branch đang làm việc, mình sử dụng Oh My Zsh kết hợp với PowerLevel10k, bạn có thể tham khảo cách setup chúng tại bài viết này: https://dev.to/abdfnx/oh-my-zsh-powerlevel10k-cool-terminal-1no0 .

Khi tinh chỉnh lại terminal, bạn có thể dễ dàng quan sát được status code, branch name, version của ngôn ngữ, thư viện, vv.vv

2. Dùng Alias để rút gọn câu lệnh

Vì sử dụng command git là chính, nên việc cứ phải gõ những câu lệnh quen thuộc hàng ngày mình thấy rất mất thời gian, vậy nên mình sử dụng alias trong zshrc để đại diện cho một số câu lệnh quen thuộc.

Thì lúc đó khi cần dùng command git, chúng ta chỉ cần gõ một vài ký tự

Đây là những alias mình dùng, còn bạn có thể sử dụng từ viết tắt miễn sao bản thân dễ nhận biết và dễ nhớ nhé.

3. Nên sử dụng Git pull --rebase

Vì sao ư ? Mình thấy nhiều bạn hay dùng "git pull origin main" để kéo code mới về local. Nếu xét về bản chất, thì nó sẽ thực hiện công việc tải xuống (fetch) tất cả các thay đổi từ nhánh main của kho lưu trữ origin và tự động hợp nhất (merge) những thay đổi đó vào nhánh hiện tại.

Trông có vẻ ổn, tuy nhiên lịch sử commit trên nhánh của bạn sẽ có nhiều trường hợp bị đảo lộn và rất khó theo dõi. Trong khi đó, nếu dùng "git pull --rebase origin main" (hay viết gọn là git pull -r origin main), nó cũng tải xuống các thay đổi từ nhánh main của kho lưu trữ từ xa origin, nhưng thay vì hợp nhất, nó sử dụng phương pháp "rebase" để kết hợp các thay đổi vào nhánh hiện tại của bạn.

Điều này giúp cho những commit trên nhánh của bạn ở dưới local sẽ được đưa đến cuối cùng trong lịch sử commit, và nó cũng giúp cho lịch sử được sạch và dễ theo dõi hơn, và nó còn giúp hạn chế conflict code.

4. Sử dụng Git reflog

Trong quá trình làm việc với git, sẽ có những tình huống mà bạn mắc sai lầm như là merge nhầm nhánh code, xóa mất commit, xóa branch, vv.vv vậy thì git reflog sẽ là phao cứu sinh cho bạn.

Nó sẽ hiển thị lưu trữ lịch sử các trạng thái source code ở từng thao tác, và bạn dễ dàng checkout đến những vị trí mà bạn cần quay lại (giống như du hành về quá khứ vậy đó). Chi tiết về cách sử dụng bạn có thể tham khảo ở bài viết trước đây của mình: https://viblo.asia/p/git-reflog-phao-cuu-sinh-cho-nhung-loi-lam-hay-gap-tren-git-x7Z4Dja2LnX

5. Perfect commit

Như thế nào là 1 Perfect commit, và làm sao để tuân theo nó. Theo cách nhìn nhận của mình, để có một perfect commit chúng ta cần đảm bảo:

  • Mỗi commit nên chứa một thay đổi nhỏ và độc lập, giải quyết một vấn đề cụ thể hoặc thêm một tính năng nhỏ
  • Tên commit nên mô tả rõ ràng những gì đã thay đổi và lý do tại sao những thay đổi đó được thực hiện
  • Tuân thủ quy ước về đặt tên commit của dự án

Tất cả những điều đó sẽ giúp commit của bạn sạch sẽ, dễ review và bảo trì hơn. Giả sử bạn làm 2, 3 task xong commit 1 lần duy nhất, sau này khi release, bỗng có một tính năng bị lỗi, và bạn được yêu cầu reset phần code lỗi đó. Và lúc đó bạn lại loay hoay về việc tách cái phần code lỗi ra khỏi 2, 3 task code kia. Thay vì vậy, nếu bạn giữ được các commit độc lập, chứa những code cụ thể, thì bạn chỉ cần reset riêng cái commit đó thôi.

Vậy nếu trong 1 file code bạn thay đổi ở nhiều nơi, và muốn mỗi phần thuộc 1 commit thì sao. Nếu sử dụng lệnh "git add <filename.>" thông thường thì không được rồi. Lúc này bạn có thể sử dụng "git add -p".

Nó giúp bạn có thể tùy chọn riêng lẻ những phần code được đưa vào staging area trong 1 file.

Kết Luận

Còn một số phần nữa nhưng mình xin được chia sẻ ở những bài viết sau nhé, cảm ơn các bạn đã đọc, nếu thấy hay thì hãy Upvote cho mình để tiếp thêm động lực nhé. Thanks ae

Bình luận

Bài viết tương tự

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 701

- vừa được xem lúc

Tập hợp những câu lệnh GIT hữu dụng

Dưới đây là một vài ví dụ về các câu lệnh Git mà tôi thường dùng. git config --global user.name "John Doe". git config --global user.

0 0 55

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 2): Trigger một work flow

Events trigger. Bạn có thể cấu hình cho workflows chạy khi có một sự kiện nào đó xảy ra trên GitHub, theo một lịch có sẵn hoặc cũng có thể là một sự kiện nào đó xảy ra ngoài GitHub.

0 0 70

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 1): Một ít lý thuyết

CI/CD là gì. Về mặt khái niệm là vậy nhưng về mặt triển khai thì CI/CD là quá trình tự động thực hiện các quá trình build, test, release, deploy khi có các trigger như commit/merge code lên một branch định sẵn hoặc có thể là tự động chạy theo một lịch cố định.

0 0 118

- vừa được xem lúc

Giới thiệu về Git LFS

. Git LFS là gì . Git LFS làm điều này bằng cách thay thế các tệp lớn trong repo của bạn bằng một con trỏ nhỏ.

0 0 29

- vừa được xem lúc

Git workflow được Google và Facebook sử dụng có gì hay ho

Với developer thì Git hẳn là công cụ rất quen thuộc và không thể thiếu rồi. Thế nhưng có mấy ai thực sự hiểu được Git.

0 0 66