Mấy hôm nay tìm hiểu về Git để chuẩn bị tham gia project nhóm cùng mấy đứa bạn mà đầu óc cứ lẫn lộn hết cả lên. Lên mạng đọc tài liệu thấy người thì bảo dùng `clone`, kẻ lại cứăng nhắc phải `fork` rồi tạo Pull Request các kiểu. Đau đầu thật chứ! Mình thì gà mờ, chỉ mới quen kiểu tự code rồi lưu vào máy hoặc ném lên Drive chứ chưa làm việc nhóm bao giờ. Giờ không biết khi nào thì nên dùng `clone`, khi nào bắt buộc phải `fork` để không làm hỏng code của nhóm. Dự án thì sắp chạy mà cơ chế phối hợp còn mù mịt quá. Bác nào rành vụ này thông não hộ cái. Giải thích theo kiểu người mới học code giúp mình nhé, đừng dùng thuật ngữ hàn lâm quá đọc không ngấm nổi đâu. Cảm ơn các bác nhiều.
Đang phân vân giữa Clone với Fork git là gì để bắt đầu code nhóm thế nào.
Thảo luận (5 bình luận chính)
Mới làm quen với Git thì cứ quên cái khái niệm `fork` đi cho đỡ nhức đầu, cái đó thường để đóng góp cho dự án mã nguồn mở của người lạ cơ. Nhóm bạn thân làm chung một project thì cứ áp dụng nhanh 3 bước này là xong: Một đứa tạo Repo trên GitHub rồi add mấy đứa còn lại vào làm collaborator, tụi mình dùng lệnh `git clone` cái repo đó về máy để bắt đầu code, xong xuôi thì cứ `git push` lên nhánh chung thôi. Cứ làm vài lần là quen tay ngay ấy mà, không có gì phải xoắn.
Hồi trước nhóm mình cũng gà mờ y chang thớt, cứ cắm cổ vào dùng chung một nhánh rồi đè code lên nhau đến mức khóc thét. Điểm mấu chốt bạn cần nhớ là: clone chỉ để kéo một bản sao từ kho chứa chung về máy cá nhân khi bạn đã có quyền push trực tiếp, còn fork là tạo hẳn một bản sao độc lập trên tài khoản GitHub của riêng bạn dành cho các dự án nguồn mở mà bạn không có quyền sửa trực tiếp. Project nhóm cùng bạn bè thì cứ `git clone` cái repo của nhóm về, chia nhau ra mỗi đứa một nhánh (branch) riêng rồi làm, tuyệt đối đừng ham hố fork rồi mệt xác mấy vụ sync code với conflict phức tạp.
Điểm mấu chốt bạn cần nhớ là phân biệt rõ mục đích để tránh việc nhầm lẫn tai hại trong quá trình làm nhóm. Nếu dự án đó là của chung team hoặc bạn có quyền push thẳng vào kho lưu trữ gốc, cứ `git clone` về máy là xong, sửa gì thì tạo branch riêng rồi làm. Còn khi bạn tham gia vào một dự án mã nguồn mở của người lạ mà mình không có quyền ghi (write access), lúc đó mới phải `fork` về tài khoản cá nhân rồi tạo Pull Request (PR) để xin người ta merge code vào. Nhiều bạn gà mờ mới vào cứ hay bấm nhầm nút Fork trên GitHub trong khi cả nhóm đang làm chung một repo riêng tư, kết quả là tạo ra một đống bản sao lung tung rồi không biết cách sync code, cực kỳ mất thời gian fix conflict. Cứ bảo lũ bạn thống nhất quy trình đi, dự án nội bộ của nhóm thì cứ `clone` repo chính thống về, phân chia nhánh (branch) rõ ràng theo tính năng là chạy mượt ngay thôi.
Vụ này đợt trước nhóm mình mới bắt đầu cũng cãi nhau suốt vì chưa phân biệt được hai khái niệm này. Thực ra hiểu đơn giản thế này: `clone` là mình kéo một bản sao từ kho chứa (repository) chính của nhóm về máy cá nhân để code trực tiếp và đẩy code lên qua các nhánh (branch), rất hợp cho mấy project nội bộ làm chung với nhau. Còn `fork` là tạo hẳn một bản sao độc lập thuộc tài khoản của riêng mình từ project của người khác, thường dùng khi đóng góp cho các dự án nguồn mở (open source) rồi mới tạo Pull Request xin merge code vào bản gốc. Project nhóm cùng bạn bè thì cứ chọn `clone` và phân chia branch cho gọn, đừng phức tạp hóa vấn đề làm gì cho đau đầu.
Vụ này đợt trước mình kéo mấy đứa bạn cùng lớp làm project tốt nghiệp cũng gà mờ y chang, cứ bấm nhầm suốt xong conflict banh xác cái repo. Nói ngắn gọn dễ hiểu thế này cho chủ thớt đỡ đau đầu: `clone` là kiểu copy nguyên cái kho code chính về máy để mình nhảy vào sửa trực tiếp (thường áp dụng khi cả đám chung một team, cùng quyền push lên repo gốc), còn `fork` là tạo hẳn một bản sao độc lập nằm trên tài khoản GitHub của riêng mình (dùng khi bạn đóng góp cho mã nguồn mở hoặc làm việc với các dự án lớn cần kiểm duyệt gắt gao qua Pull Request). Mới bắt đầu code nhóm với mấy đứa bạn thân thiết thì cứ chơi bài tạo chung một Organization hoặc thêm nhau vào làm Collaborator rồi `git clone` về máy cho nhanh gọn, đỡ phải rườm rà mấy bước sync repo từ fork cực thân.
Đồng cảm với chủ thớt, phòng trọ chật chội mà cóám lũ gián thì ám ảnh thực sự...
Tại chủ đề: Phòng trọ dạo này xuất hiện lắm gián quá, có cách nào diệt gián trong phòng trọ triệt để không.Nói ngắn gọn cho dễ hiểu thì GitHub giống như một cái kho chứa mã nguồn trực ...
Tại chủ đề: Thắc mắc chuyên môn: Git hub là gì?Chủ thớt thử ngay cách dùng than hoạt tính hoặc một hộp baking soda mở nắp đặ...
Tại chủ đề: Xin cao kiến khử mùi tủ lạnh bằng cách nào hiệu quả nhất.Chờ ngân hàng tự tăng thì hên xui lắm chủ thớt ơi, nhất là lúc cần tiền gấp c...
Tại chủ đề: Đang phân vân giữa tự xin tăng hay chờ ngân hàng chủ động: Cách nâng hạn mức thẻ tín dụng thế nào.Điểm mấu chốt bạn cần nhớ là thời hạn nộp hồ sơ chỉ có trong vòng 45 ngày kể ...
Tại chủ đề: Hồ sơ hưởng chế độ thai sản gồm những giấy tờ gì thế nào.