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

BA CÓ CẦN PHẢI BIẾT GIT KHÔNG?

0 0 30

Người đăng: Thành Đạt

Theo Viblo Asia

Xin chào các bạn, mình là Đạt đây. Chắc hẳn rằng các bạn đang làm BA không ít nhiều gì cũng nghe đến Git. Vậy Git là gì? Là một BA có cần phải biết đến Git không? Cùng mình xem qua bài viết này nhé 😎 Get go

Tâm sự mỏng

Các bạn đang làm BA, ở một số công ty các bạn phải làm việc với team dev để nắm tiến độ dự án. Có lần qua thì bạn nghe dev nói: "Code hiện tại đang bị conflict trên nhánh staging, phải đợi một ông dev khác có mặt mới giải quyết được chứ fix lung tung sẽ bị mất code".

Nếu bạn không hiểu câu trên, bạn không thể nào báo cáo tình hình dự án cho sếp. Đó là lúc bạn cần phải biết một số kiến thức cơ bản về Git.

Git là gì? Các thuật ngữ hay dùng trong Git.

Git là một hệ thống quản lý phiên bản phân tán (distributed version control system). Nhờ Git, việc quản lý code và làm việc nhóm của developer trở nên đơn giản, thuận tiện hơn.

Hay nói đơn giản dễ hiểu, Git là một nơi quản lý code. Mỗi thành viên trong dự án đều có thể tải code người khác về và up code của mình lên để thành một source code chung, chính là source code dự án.

Và một điều khá hay đó chính là, tất cả các việc thay đổi source code đều được Git ghi lại. Dev sửa file nào, thêm dòng code nào, xóa dòng code nào, bỏ thừa dấu ở đâu, mọi thứ đều được lưu lại.

Không dài dòng nữa, chúng ta cùng điểm qua một số thuật ngữ trong Git.

1. REPOSITORY

Repository là một kho chứa, lưu trữ source code. Trong đó có hai loại repository:

  • Local repository: Là repository được lưu tại máy tính của các anh dev. Dev có thể thêm, sửa, xóa file để lưu lại nhưng chưa thể dùng để chia sẻ tới người khác.

  • Server repository: Là repository được lưu tại server của các hosting-service sử dụng Git (Github, Gitlab,...). Những người khác có quyền truy cập thì họ có thể tải source code về.

*Một vài repository của mình*

2. BRANCH

Branch hay còn gọi là nhánh, một repository sẽ có một hoặc nhiều nhánh. Có thể hiểu một nhánh là một tính năng của app hay một task nào đó của dev, để cuối cùng những dòng code trong nhánh này sẽ được hợp vào nhánh lớn nhất của repository.

Ví dụ: Trong một dự án ta có thể có:

  • Master branch: là nhánh lớn nhất hay còn gọi là nhánh ông nội =))) code trong nhánh này thường là code cuối cùng của app. Chỉ cần thay đổi code ở nhánh này sẽ ảnh hướng đến app đang hiện hành, vì vậy các leader thường phải review code thật kỹ của các thành viên mới được merge code vào nhánh này.
  • Staging branch: cũng là nhánh lớn, nhưng app từ nhánh này chưa phải là app chính thức để deliver cho end-user. App được export từ nhánh này thường được các nhân viên trong công ty và các stakeholder trải nghiệm trước để xem có vấn đề hay bug gì không? Nếu ổn mới merge code nhánh này vào nhánh master.
  • Và các branch nhỏ hơn: Như mình đã nói, cách đặt tên nhánh có thể là một tính năng của app hay một task nào đó của dev. Hồi mình còn làm dev mình hay đặt tên nhánh kiểu như thế này: "feature/add-post", "task/update-api-login" =)))

Vậy một câu hỏi đặt ra là trong một repository có thể đến hàng trăm nhánh lựn? Đúng vậy, nhưng để quản lý tốt hơn, các dev thường xóa nhánh đó đi khi up code lên nhánh đích. Như vậy trên Server repository sẽ không xuất hiện quá nhiều nhánh cũ mà không đá động gì tới nữa.

3. COMMIT

Là BA thì mình nghĩ chỉ nên hiểu đơn giản cho đỡ rối, là khi dev muốn up code lên một nhánh nào đó bắt buộc phải commit. Commit chứa một số thông tin như:

  • tên, email người tạo commit
  • message: cái này buộc các ông dev phải mô tả mỗi khi commit, nó là nội dung mô tả những gì ổng làm trước đó. Nếu như bạn thấy ông nội dev nào mà commit kiểu "." hoặc kiểu "#@!#@!2132" thì kí đầu ổng liền nhé =)))
  • id commit: cái này tiện, nếu ông dev nào bị mất code thì có thể khôi phục dựa vào commit id

NGOÀI RA CÁC BẠN CÒN THƯỜNG NGHE VÀI THUẬT NGỮ HAY DÙNG NHƯ:

Clone: là tải nguyên source code về.

Pull code: cũng là tải code nhưng chỉ tải những sự thay đổi mới về, thường thì mỗi sáng mấy ông dev đều phải pull code về mới bắt đầu code tiếp. Chính xác hơn, khi có một ông nội dev nào khác đẩy code ổng lên, thì các dev khác phải pull code về để làm tiếp. Mục đích là tránh tình trạng 2 3 ông code cùng 1 file mà đẩy lên cùng lúc là code chồng lên nhau dẫn đến tình trạng conflict code, mất code.

Push code: là đẩy code lên source code chung

Tạo merge request/Pull request: là gửi một thông báo cho lead/sếp yêu cầu review code, mục đích là để ổng apply code vào source chung.

Merge request: ổng apply code vào source

Conflict: Tức là tình trạng code bị chồng lên nhau, sảy ra khi 2 hay nhiều ông dev code cùng một hàm hay một file, code ông này đè lên ông kia. Kinh nghiệm của mình để tránh tình trạng này là phải pull code thường xuyên, khi có thông tin ai đó đẩy code lên được lead/sếp merge rồi thì phải pull về.

Tổng kết

Chúng ta vừa điểm qua một vài kiến thức cơ bản về Git. Hy vọng bài viết này sẽ bổ trợ một phần nào đó trong công việc của các bạn. Follow Facebook mình để xem thêm nhiều bài viết trong tương lai nhé 😁

Linked: tothanhdat

Email: todat999@gmail.com

Ref

https://tothanhdat.com/blog/62dbcbfb750c72222be38315

Bình luận

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

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

Thi chứng chỉ ECBA của tổ chức IIBA như thế nào?

I. Giới thiệu về tổ chức IIBA & chứng chỉ ECBA. 1. Tổ chức IIBA.

0 0 116

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

BA làm gì trong 1 dự án? (phần 2)

Tiếp nối phần 1 - lên kế hoạch, chúng ta cùng đến với phần 2 của loạt bài viết "BA làm gì trong 1 dự án?". Ở phần 2 này, chúng ta sẽ sử dụng "kế hoạch với stakeholder" đã có đề cập từ phần 1 để triển khai bước tiếp theo.

0 0 42

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

Vai trò của Chuyên viên Phân tích Nghiệp vụ phần mềm trong các công ty Start-up

Phân tích nghiệp vụ theo định nghĩa của Viện Phân tích Kinh doanh quốc tế (IIBA) trong A Guide to the Business Analysis Body of Knowledge (BABOK) là: người thực hiện các nhiệm vụ về phân tích nghiệp v

1 1 69

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

BA - CON ĐƯỜNG KHÔNG CHỈ DÀNH RIÊNG CHO CÁC IT-ERS

Có rất nhiều bạn đã đặt câu hỏi với BAC rằng: “Mình không có học về IT, mình không biết gì về kỹ thuật hết, vậy mình có làm BA được không?”. .

0 0 45

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

CHỨNG CHỈ PMI - PBA LÀ GÌ? SO SÁNH VỚI CÁC CHỨNG CHỈ CỦA IIBA

Lĩnh vực phân tích nghiệp vụ ngày càng phát triển rộng rãi tại Việt Nam. Kéo theo đó là nhu cầu nhân lực ngành này ngày càng cao.

0 0 78

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

Các cách để chia nhỏ 1 user story (Phần 1)

Chào các bạn, trong bài viết trước mình có đề cập đến các cách để bổ sung chi tiết cho user story, một trong số đó chính là chia nhỏ user story đó thành nhiều user story nhỏ hơn. Trong bài viết đó, do

0 0 53