27 lượt xem

Git là gì? 6 lợi ích TUYỆT VỜI khi dùng Git khi so với những VCS khác | Educationuk-vietnam.org

Git là gì? Giống như các hệ thống kiểm soát phiên bản khác, Git cũng hỗ trợ quản lý mã và lịch sử thay đổi. Tuy nhiên, Git vượt trội hơn hẳn vì nó có khả năng phân nhánh, hỗ trợ rất tốt cho việc làm việc nhóm, những việc như chia sẻ nhiệm vụ, tổng hợp mã trở nên dễ dàng hơn rất nhiều.

Xem ngay các công việc Nhà phát triển chất lượng tại ITviec

Để giúp các bạn hiểu rõ hơn về Git là gì và cách sử dụng Git hiệu quả hơn, ITviec đã gửi đến 3 chuyên gia để thực hiện bài viết này:

  • Ông Jonathan Khor – Với 13 năm kinh nghiệm lập trình, Jonathan đã đảm nhiệm nhiều vị trí như Kỹ sư phần mềm và Lập trình viên phân tích. Ông hiện là Trưởng nhóm Phát triển tại MedHealth.
  • Anh Vũ Thành Nhân, hiện đang làm việc tại bộ phận R&D của Vietnix.
  • Anh Vương Đức Hiển, hiện là Lập trình viên tại ITviec.

git-la-git

Từ trái sang: Jonathan Khor, Vương Đức Hiền, Vũ Thành Nhân

xác định Git là gì?

Git là một hệ thống kiểm soát phiên bản phân tán. Nhờ có Git, việc quản lý mã và làm việc theo nhóm của nhà phát triển trở nên đơn giản và thuận tiện hơn.

Để tìm hiểu thêm về Git là gì, bạn có thể truy cập trang chủ của Git tại đây.

git-la-git

Việc làm lập trình viên tại Thành phố Hồ Chí Minh

Việc làm lập trình viên tại Hà Nội

Khi được hỏi tính năng Git yêu thích của anh ấy là gì, Hiền nói rằng đối với anh ấy, đó là Git Hooks – Nó cho phép các tập lệnh phía máy khách hoặc phía máy chủ tự động được kích hoạt khi bạn chạy lệnh git.

Ví dụ: bạn có thể yêu cầu máy chủ tự động chạy tất cả các bài kiểm tra đơn vị trước khi chấp nhận hợp nhất vào nhánh chính.
Tất nhiên, nó sẽ không viết cho bạn các bài kiểm tra đơn vị “ngon”, nhưng tôi nghĩ nó sẽ có động lực hơn. Bởi vì kiểm tra kỹ lưỡng sẽ giúp đảm bảo rằng các tính năng bạn đang xây dựng không bị phá vỡ bởi các cam kết khác.

– Ông Vương Đức Hiền

githooks-la-gi

Githooks là một tính năng thú vị của Git.

Điểm giống / khác giữa các hệ thống điều khiển phiên bản khác và Git là gì?

1. Giống:

Vì Git cũng là một hệ thống kiểm soát phiên bản (viết tắt: VCS), Git hỗ trợ:

  • Quản lý mã và lịch sử thay đổi:

Ví dụ, bạn chỉnh sửa mã và “điên” tạo ra một loạt các lỗi? Bạn có muốn trở lại trạng thái trước khi “dở chứng” không? Nếu không sử dụng VCS, bạn sẽ cần sao chép lại tệp trước khi chỉnh sửa và bạn cần cập nhật tên thư mục và tên tệp thường xuyên.

Khi các thành viên trong nhóm muốn chia sẻ mã với nhau nhưng không sử dụng VCS, họ sẽ cần:

  1. Sao chép từng mô-đun và mã vào USB và đưa chúng cho nhau
  2. Hoặc gửi các đoạn mã nhỏ thông qua ứng dụng chat, mail …

Các phương pháp trên rất thủ công, tốn tài nguyên và tiềm ẩn nhiều nguy cơ. VCS (bao gồm cả Git) ra đời để khắc phục điều này.

2. Khác:

Git truy cập phân tán trong khi các QVS khác tiếp cận theo hướng tập trung hóa.

Thay đổi lớn nhất của Git là gì? Đây là khả năng phân nhánh. Nhờ khả năng này, Git đã mang đến những đặc điểm nổi bật sau đây.

READ  Ê – đi- xơn là nhà bác học nổi tiếng của nước nào ? Đọc truyện | Educationuk-vietnam.org

Ưu điểm của Git so với SVN là gì?

Nhờ cách tiếp cận phân tán, Git mang lại những lợi ích to lớn như hỗ trợ đắc lực cho việc làm việc nhóm, phân chia nhiệm vụ, tổng hợp mã trở nên dễ dàng hơn rất nhiều, cụ thể:

1. Tổ chức công việc tốt hơn

Điều này có nghĩa là, bạn có thể tập trung giải quyết từng nhiệm vụ mà không cần phải lo lắng về các nhiệm vụ liên quan.

Nếu bạn không sử dụng Git, rất có thể mọi người sẽ làm việc trên đôi chân của nhau, và các nhiệm vụ sắp hoàn thành sẽ bị trì hoãn. Ngoài ra, tất cả các tác vụ lớn nhỏ sẽ buộc phải hoàn thành trước khi triển khai, vì chỉ cần một tác vụ còn dang dở là toàn bộ phần mềm có thể bị sập.

Xem thêm: Cách sử dụng Git để cải thiện chuẩn luồng Git

2. Linh hoạt hơn khi phải thực hiện nhiều tác vụ cùng lúc

Bởi vì bạn có thể cấu trúc công việc của mình dễ dàng hơn, rất dễ dàng thực hiện nhiều nhiệm vụ cùng một lúc. Ví dụ: đồng thời, chúng tôi thường có một nhóm làm việc trên các tính năng mới, một số nhóm khác cải thiện các tính năng hiện có và một người sửa lỗi.

remote-workflow-cua-git

Git rất ủng hộ tinh thần đồng đội

3. Tự tin hơn khi thử nghiệm những ý tưởng mới

Bạn có thể tách kiểm thử khỏi dự án chính, điều này giúp cải thiện chất lượng mã cũng như tính sáng tạo.

Nói chung, Git hiện được coi là tiêu chuẩn bất thành văn trong ngành. Nếu bạn chưa biết Git, bạn nên dành thời gian để bắt đầu học ngay. Bởi vì, sớm hay muộn, bạn cũng sẽ thuộc một đội cần được dựa vào.

4. Git cho phép chúng tôi làm việc ngoại tuyến

Theo Mr. Thanh Nhàn, ở thời điểm hiện tại, Git hơn hẳn các hệ thống điều khiển phiên bản tập trung như SVN.

Ví dụ, Git cho phép chúng tôi làm việc ngoại tuyến trong một thời gian. Bạn chỉ cần Internet cho nhu cầu cộng tác nhóm hoặc lưu lịch sử cam kết mã vào kho lưu trữ từ xa. Ngược lại, với SVN, mỗi lần sử dụng đều yêu cầu kết nối với máy chủ SVN.

5. Cách lưu trữ thông tin

Ông Jonathan cho rằng so với SVN và TFS, Git rõ ràng vượt trội hơn hẳn. Sự khác biệt cơ bản trong cách Git quản lý lưu trữ và các chi nhánh làm cho việc hợp nhất hoàn toàn khác nhau.

Ngoài ra, nhờ cách Git lưu trữ thông tin, bạn có thể làm rất nhiều điều thú vị để viết lại lịch sử cam kết.

Nói thêm về tính năng này, Mr. Thanh Nhàn đưa ra một ví dụ khác. Khi phân nhánh, Git chỉ sử dụng 41 byte cho một nhánh mới, giúp tiết kiệm không gian lưu trữ mà vẫn đáp ứng tốt nhu cầu công việc. Còn SVN theo mình biết thì nó sẽ copy toàn bộ mã nguồn sang phiên bản mới khi phân nhánh.

6. Git miễn phí

Anh Đức Hiển cho rằng, lý do Git được ưa chuộng chủ yếu là do Git miễn phí. Điều này có nghĩa là, bất kỳ ai cũng có thể bắt đầu sử dụng các chức năng cơ bản của Git mà không cần bất kỳ cơ sở hạ tầng máy chủ nào. Ngay cả Microsoft cũng đã bắt đầu sử dụng Git để lưu trữ mã nguồn Windows.

READ  Mô tả công viêc của kỹ sư sản xuất | Educationuk-vietnam.org

Đặc biệt, Git “sinh sau đẻ muộn” nên tốc độ phát triển chóng mặt lại càng đáng kinh ngạc.

Chú thích khi làm việc với Git là gì?

  • Phải học các nguyên tắc cốt lõi của Git

“Không có gì tệ hơn việc phải luôn đúng thời hạn và vẫn cố gắng học cách sử dụng Git. Tốt hơn hết bạn nên dành thời gian tìm hiểu Git trước và sau đó dùng thử với một vài dự án thử nghiệm để tránh làm gián đoạn công việc chính của bạn. Hãy tìm hiểu Git là gì và giá trị của nó trước! ”

– Ông Jonathan Khor

Ông Jonathan khuyên bạn nên đọc sách Pro Git. Bạn không cần phải đọc cuốn sách này để biết cách sử dụng Git, nhưng nếu bạn muốn sử dụng Git một cách hiệu quả, bạn nên đọc kỹ.

Tóm lại, nếu bạn là người mới bắt đầu, có 3 điều cơ bản bạn cần học / ghi nhớ đầu tiên:

  1. Git là một biểu đồ có hướng không có vòng lặp
  2. Cam kết không thay đổi
  3. Các nhánh chỉ mang tính chất biểu thị. Mọi thứ khác bắt đầu ở đây
  • Nó không nên áp dụng CVS và SVN cho Git

Jonathan: Ví dụ, các chi nhánh. Với Git, các nhánh chỉ là con trỏ tới các cam kết, với SVN, chúng là bản sao của toàn bộ thư mục. Giải pháp: tìm hiểu Git kỹ hơn! Quay lại ghi chú ở trên.

Thanh Nhàn: Không thể phân biệt giữa repo cục bộ, repo từ xa, vẫn áp dụng hệ tư tưởng SVN khi sử dụng Git.

Đức Hiền: Tôi cũng nghĩ rằng một số IDE, như Eclipse, được thiết kế để hoạt động với hệ thống CVS cũ, nhưng bao gồm việc sử dụng Git. Vì vậy việc tích hợp không thực sự thuận tiện như các tính năng khác của Git. (CVS – Hệ thống Phiên bản Đồng thời, một hệ thống quản lý phiên bản phần mềm mã nguồn mở từ những năm 1980).

  • Những lưu ý khi bạn cam kết

Với anh Thành Nhân, anh cho rằng các bạn không nên mắc sai lầm khi chưa biết các bước dọn dẹp cây cam kết, làm lộn xộn bản ghi cam kết. Biện pháp phòng ngừa tốt nhất là xem kỹ tài liệu về phần này và kiểm tra nó trong các dự án demo. Về phần commit log thì nhóm nên thống nhất trước, hoặc nhờ người có kinh nghiệm hướng dẫn.

Có những người cam kết một cách “hoàn mỹ”, nhưng cũng có những người quên cam kết. Và đây là anh Jonathan.

Khi khôi phục một nhánh, tôi đã quên thực hiện các thay đổi. Thế là đổ sông đổ biển rồi mọi việc cũng xong.

Từ đó trở đi, trước khi khôi phục một nhánh, tôi luôn nhập lệnh bổ sung để thực hiện các thay đổi trước, sau đó khôi phục. Bằng cách đó, nếu tôi muốn xem lại các thay đổi trước đó, tôi có thể sử dụng reflog.

  • Lưu ý khi nhận phòng

Đây là những ghi chú của Mr. Đức Hiền từ kinh nghiệm và sai lầm của mình:

  1. Kiểm tra các tệp không thực sự được liên kết với VCS: Điều này đặc biệt phổ biến với các dự án Python, khi mọi người kiểm tra tệp .pyc của họ. Bạn có thể đặt .gitignore để bỏ qua chúng. Và cũng sử dụng github để làm sạch chúng khi bạn chuyển nhánh.
  2. Kiểm tra những thứ tuyệt đối không được khuyến khích: Ví dụ, mọi người rất giỏi viết mã những thứ như mật khẩu mysql. Về mặt bảo mật, lỗi này thực sự khủng khiếp. Mặt khác, điều đó cũng có nghĩa là bạn không thể chạy các chương trình tích hợp liên tục (CI) vì tài khoản trong môi trường sản xuất (hy vọng) khác với môi trường thử nghiệm.
  3. Bạn quên kiểm tra mã mới: Kết quả là nhiều ngày làm việc thành công, chỉ do không nghe cảnh báo của Git. Và trong trường hợp này, điều duy nhất có thể làm là rút kinh nghiệm để không lặp lại sai lầm tương tự.
  • Phân nhánh thường xuyên
READ  Rớt tốt nghiệp THPT phải làm sao? | Educationuk-vietnam.org

Dù làm việc một mình cũng nên “rẽ nhánh sớm, đẻ nhánh thường”, đừng phó thác mọi việc cho nhánh chủ.

  1. Tránh hình thành thói quen xấu
  2. Tận dụng các tính năng tốt nhất của VCS

Đảm bảo rằng bạn có một nhánh giai đoạn với các tính năng đã được kiểm tra đơn vị đầy đủ trước khi nhập vào nhánh chính.

  • Giao diện người dùng của Git cần được cải thiện

Cá nhân, Jonathan nhận thấy rằng giao diện người dùng của Git không tốt lắm và không cung cấp đủ các tính năng nâng cao mà một nhà phát triển có thể cần.

  1. Giao diện để căn cứ lại một nhánh là sơ sài: Chúng dường như chỉ phù hợp để sử dụng cơ bản. Ngoài ra, khi sai sót xảy ra, chúng không phải lúc nào cũng được xử lý tốt.
  2. Xem các thay đổi đối với tệp hoặc tập thay đổi: Hầu hết các giao diện người dùng hiển thị chúng theo hàng ngang, với phiên bản cũ ở trên cùng và phiên bản mới ở dưới. Đáng lẽ chúng phải chuyển sang màn hình dọc sẽ dễ theo dõi hơn. Chưa hết, một số giao diện người dùng cho phép sử dụng một chương trình bên ngoài như Beyond Compare để thấy sự khác biệt, nhưng những người khác thì không.
  3. Việc mở tệp đang được xem trong IDE cũng không tốt lắm: Không phải tất cả các giao diện người dùng đều cho phép điều này chỉ với một phím tắt hoặc một cú nhấp đúp. Trong khi đó, nhà phát triển cần xem lại mã hàng ngày và tính năng này cực kỳ quan trọng vì nó sẽ giúp họ chuyển thẳng đến tệp mà họ đang xem.

Jobs Senior Developer HCMC

Việc làm nhà phát triển cấp cao tại Hà Nội

Hướng dẫn sử dụng Git hiệu quả?

  • Pro Git bao gồm mọi thứ về Git, bao gồm cả lý thuyết và ví dụ. Điều tuyệt vời nhất là cuốn sách đã được dịch ra nhiều thứ tiếng, trong đó có tiếng Việt.
  • Atlassian’s Git Resources có một số tài nguyên rất hữu ích, với hình ảnh minh họa hấp dẫn, giúp người dùng hiểu các khái niệm dễ dàng hơn.
  • Hướng dẫn Git GitHub là hướng dẫn thực hành từng bước để học Git một cách trực quan.
  • Git cheat sheet tóm tắt những điều quan trọng nhất. Bạn có thể in nó để sử dụng cho riêng bạn.

Xem một số bài viết liên quan khác:

Nô lệ 2

Nếu bạn nghĩ những chia sẻ này có thể giúp ích cho bạn bè hoặc đồng nghiệp của mình, đừng ngần ngại nhấn nút Chia sẻ bên dưới nhé!

Và tham khảo ngay những công việc chất lượng của Lập trình viên tại ITviec!