Git là một công cụ quản lý phiên bản và làm việc nhóm rất phổ biến hiện nay. Nhưng không vì thế mà ai cũng biết sử dụng thành thạo git, chứ chưa nói đến nhiều tính năng nâng cao khác. Sở dĩ nói như vậy là vì tôi đã tiếp xúc với nhiều câu chuyện về cách sử dụng git của đồng nghiệp, thoạt nhìn có vẻ họ không gặp vấn đề gì, nhưng trong sâu xa có nhiều câu lệnh khiến cho họ phải lúng túng. Ngay cả bản thân tôi cũng thế, có nhiều tình huống làm cho mình cảm thấy thật bối rối. Bên cạnh...
8 tháng trước
Bạn có đang sử dụng Docker trong số các dự án nào đang tham gia không? Nếu có thì chắc hẳn vấn đề lưu trữ và chia sẻ Images cần phải được giải quyết, đơn giản bởi vì Registry mặc định của Docker giới hạn số lượng các hình ảnh riêng tư (Private Images). Điều đó có nghĩa là nếu có nhiều dự án thì bắt buộc bạn phải public số hình ảnh đó cho cộng đồng, mà chắc chắn là không phải ai cũng muốn vì dự án của chúng ta cần tính riêng tư. Thông thường, có người sẽ chi trả khoản phí cho Docker để nhận được...
1 năm trước
Có một vấn đề mà tôi thấy rất nhiều người tìm kiếm đó là "xóa commit đã push". Tình cờ tôi cũng có một bài viết có tên là "Tôi vừa lỡ commit sai, làm sao để sửa lại ngay lập tức?" lại lọt vào kết quả tìm kiếm top đầu trên google cho từ khóa đấy, nhưng điều đáng nói là trong bài viết đó không có nhắc đến cách giải quyết vấn đề đang gặp phải, mà nó chỉ đơn giản là hướng dẫn bạn xóa commit "chưa" push. Vì thế, để tránh gây hiểu nhầm đồng thời giúp cho bạn đọc có một giải pháp chính xác hơn trong vấn đề này, thì bài viết ngày hôm nay chúng ta hãy cùng nhau tìm hiểu cách làm thế nào để xóa commit đã push nhé...
1 năm trước
Trình quản lý gói (Package Manager) được tích hợp hay được tạo ra và sử dụng trong các ngôn ngữ lập trình là một cách hữu hiệu để chúng ta tái sử dụng mã được chia sẻ. Ví dụ như trong Javascript/Node.js có npm với hàng triệu packages được chia sẻ bởi rất nhiều lập trình viên trên thế giới. Mỗi khi cần gì, việc đầu tiên chúng ta thường làm là tìm xem có gói nào đáp ứng được nhu cầu để giảm thời gian phát triển phần mềm...
1 năm trước
Phải nói rằng từ khi biết dùng git tôi không cần phải copy project ra thư mục mới để "backup" mỗi khi sắp sửa làm một thứ gì đó to lớn. Hồi chưa biết dùng git, cách đó là cách mà tôi có thể nghĩ ra được để bảo vệ mã của mình an toàn trong trường hợp code ra bug còn có đường lui. Git là một công cụ quản lý phiên bản mà tôi tin rằng hiệu quả cho hầu hết lập trình viên. Tính năng nổi bật của git là cho phép chúng ta tạo ra commit gọi như là "cam kết" đối với từng dòng mã bạn thêm vào. Mỗi cam kết này đều được ghi vào trong lịch sử và có thể dễ dàng xem lại được cũng như đưa mã trở về trạng thái đó...
1 năm trước
Mỗi khi làm xong một tính năng, chúng ta tiến hành merge nó vào develop. Lệnh `git merge` về cơ bản là hợp nhất những thay đổi từ nhánh này sang nhánh khác và nó có thể tạo ra thêm một commit để đánh dấu việc hợp nhất các thay đổi. Gần đây, bạn nghe đến lệnh `git rebase`. Qua tìm hiểu thì nó cũng được dùng để hợp nhất những thay đổi từ nhánh này sang nhánh khác. Có điều, cách `git merge` và `git rebase` tạo ra lịch sử commit là khác nhau thôi. Nhưng hẳn bạn đã nghe lời khuyên rằng: nếu là người mới thì đừng vội sử dụng `git rebase`. Trong khi `git merge` đang giải quyết tốt vấn đề của bạn thì hãy tiếp tục sử dụng nó. Thú thật tôi cũng không chắn chắn về việc sử dụng `git rebase`, nhưng có một tips nhỏ mà tôi muốn chia sẻ nó với các bạn trong bài viết dưới đây, hy vọng sẽ giúp ích...
1 năm trước
Làm việc với git đã lâu nhưng có thể bạn chưa biết rằng trong git cũng có khái niệm hooks và họ gọi là githooks. Githooks được kích hoạt thông qua các sự kiện, từ đó giúp bạn có thể chèn thêm những công việc cần xử lý trước hoặc sau khi thực hiện hành động đó...
2 năm trước
Hàng này công việc của chúng ta thường xuyên tiếp xúc với git, thế nên chắc hẳn mọi người đều biết trong git có các khái niệm về nhánh (branch) cùng các lệnh xử lý nhánh như checkout, merge, rebase hay là revert... Khi phát triển thêm một tính năng mới, chúng ta thường checkout từ nhánh hiện tại sang một nhánh khác để làm việc. Môi trường làm việc nhóm sẽ có nhiều người phát triển nhiều tính năng, mỗi tính năng nằm trên mỗi nhánh, chúng có thể phát triển độc lập và song song với nhau. Mọi thứ sẽ thật hoàn hảo nếu như...
2 năm trước
CI/CD bao gồm CI (Continuous Integration) và CD (Continuous Delivery) là quá trình tích hợp (integration) thường xuyên, nhanh chóng khi phát hành phiên bản mới (delivery). CI/CD giúp cho quá trình từ viết mã đến khi triển khai ứng dụng lên máy chủ trở nên nhanh và tự động hơn.
2 năm trước
Hàng ngày chúng ta thường xuyên phải code và fix bug liên tục cùng với những thành viên khác trong team. Bỗng một ngày đẹp trời tester hô lên cái lỗi mà bạn đã sửa từ mấy tuần trước bỗng dưng quay trở lại. Bạn liền lên tiếng phân bua rõ ràng đã sửa rồi và phải chứng minh cho tester thấy. Bạn mở lịch sử commit lên và bùm... commit, fix bug, fix some bug... là những thứ đập vào mắt bạn. Không ai khác đó là chính là những message mà bạn commit...
2 năm trước
Xin chào, tôi là Hoài!
Tôi muốn nói...