Hỏi về cách sử dụng github đúng đắn

Nhóm tôi hiện đang làm một project nhỏ để luyện tay. Sau một vài tuần thảo luận design các thứ (cuối tuần) thì hiện tại đã bắt đầu bắt tay vào code và dùng github để quản lý code. Tuy nhiên nhóm tôi lại gặp một số vấn đề:

  • Vì ai cũng gà github hết nên code thường xuyên bị mất :frowning:. Cái này chắc phải rút kinh nghiệm dần.
  • Mỗi người chạy project trên IDE khác nhau, sài local server, local database server nên mỗi lần fetch về là kiểu gì cũng một đống lỗi.

Cho nên tôi nghĩ là có lẽ đã dùng github sai cách, bác nào có kinh nghiệm cho tui xin một số hướng dẫn.

Xin cảm ơn.

câu hỏi quá chung chung, chốt lại chỉ là các bạn không biết xài github, không thật sự có nhiều thông tin để hỗ trợ. một vài vấn đề phổ biến

  1. Không commit file config/environment (cho nó vào gitignore). Vì những file này là mỗi người mỗi khác, cấu hình môi trường của mình. Ví dụ file .env cho vào gitignore, và tạo 1 file .env.sample để commit (mục đích là để người ta biết trong file .env có những gì). Sau đó mỗi người clone về thì copy .env.sample ra thành .env và chỉnh sửa theo môi trường của riêng mình
  2. IDE hay local environment không liên quan gì git cả, các bạn mất code là do chính các bạn mà thôi. Tự tách branch mà xài
7 Likes

Uhm, việc code thường xuyên bị mất là symptom của:

  • Team cậu có vấn đề về tổ chức và kỷ luật
  • Hoặc team cậu không có kiến thức về git-flow

Nếu bên cậu chỉ không có kiến thức về git-flow, tớ recommend cậu nên học và train cho team cách sử dụng git-flow, cùng với việc xác định process làm việc (cách tổ chức branch, process review, merge, deploy, etc). Việc này rất quan trọng và bị đánh giá thấp ở rất nhiều dự án.
Nếu bên cậu đã biết git-flow, nhưng vẫn mất code, đó là vấn đề về tổ chức và kỷ luật. Cậu nên điều tra lại và train riêng lại thành viên thường xuyên làm mất code để theo kịp process cả team.

Đây là vấn đề về process rồi :smile:

  • Bên cậu hình như chưa có quy định rõ cái gì được push lên, cái gì không, đúng không? :smile:
    Bọn cậu nên quyết định việc này. Chẳng hạn, một số công nghệ như Liquibase, Flyway,… thường tạo ra rất nhiều file mới trong quá trình development. Việc cậu xác định thay đổi nào nào được phép push lên, thay đổi nào không sẽ giúp cậu tránh rất nhiều conflict khi merge code.
  • IDE khác nhau không phải vấn đề. Tớ hiểu có một số file do IDE tạo ra có thể được push lên (điều này không được phép, cậu chỉ nên push source code có khả năng build được lên thôi). Tất cả các file IDE tạo ra nên được ignore (tham khảo .gitignore). Điều này phải được quy định rõ ở process chung, và được sự đồng ý cũng như commit thực hiện bởi tất cả các thành viên.
  • Về vụ local web server, local database server, cậu có thể giải quyết vấn đề này bằng Docker (dựng các image cho database, web server của cậu, và sử dụng nó trong quá trình phát triển).
    Thực ra, tớ recommend cách này hơn cách sử dụng flyway/liquibase (tớ không phải fan của bộ đôi này :sweat_smile:)

Hope it helps!

See also:

7 Likes

Dùng git khó chịu hơn dùng cloud drive =))

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?