Mấy hôm nay tập tành làm việc nhóm mà cái Git này làm mình đau đầu quá các bác ạ. Đọc tài liệu cứ thấy nhắc suốt hai lệnh `fetch` với `pull` mà vẫn mù mờ không hiểu bản chất nó khác nhau chỗ nào. Thấy ông anh đồng nghiệp bảo dùng nhầm một phát là code đè lên nhau đi tong luôn nên mình cứ rén rén chưa dám gõ bừa. Có bác nào thông não hộ mình phát, `git fetch origin` chính xác là làm gì thế? Rồi lúc nào thì nên xài nó thay vì cứ `git pull` cho nhanh? Cảm ơn anh em trước nhé.
Git fetch origin là gì và khác gì so với pull.
Thảo luận (4 bình luận chính)
Nghe ông anh đồng nghiệp dọa thế là chuẩn đấy chủ thớt ạ, đợt trước mình mới vào nghề cũng suýt bay màu cả đống code vì cứ phang đại lệnh `pull` mà không check trước. Bản chất thì `git fetch` nó giống như việc bạn đứng ở cửa ngó vào nhà xem có thư từ gì mới không, nó chỉ tải thông tin về máy bạn thôi chứ chưa hề chạm hay thay đổi gì đến file code hiện tại nên cực kỳ an toàn. Còn `git pull` nó bạo lực hơn nhiều, chơi kiểu "tải về và đập luôn vào mặt", tức là nó vừa fetch về vừa tự động gộp (merge) thẳng vào nhánh bạn đang làm việc, gặp conflict (xung đột) phát là ăn hành ngập mặt ngay. Kinh nghiệm xương máu của mình là cứ `git fetch` trước để xem tình hình thiên hạ ra sao, xong rồi thích thì `git merge` hoặc `git rebase` thủ công cho lành, đừng bao giờ lạm dụng `pull` khi chưa chắc chắn code mình đang sạch sẽ.
Lưu ý quan trọng nhất là đừng bao giờ gõ `git pull` bừa bãi khi chưa biết code trên nhánh chính đã biến động gì, vì nó mà conflict code với đè nhầm hàng là toang như kiểu mất sạch hàng trong kho, lúc đấy ngồi khóc tiếng mán. Bản chất `git fetch origin` chỉ giống như việc mình lướt xem báo cáo doanh thu mới nhất từ kho tổng về máy để ngó nghiêng tình hình, xem có ai nhập hàng gì mới không chứ chưa hề động chạm hay kéo cái gì về máy cá nhân cả. Còn `git pull` nó chơi lớn hơn, gộp cả bước `fetch` xong phang thẳng (merge) code mới đó vào nhánh hiện tại của bạn luôn, cực kỳ dễ ăn hành nếu local của bạn đang sửa dở dang một đống file trùng lặp.
Chuẩn rồi bác, mới học Git ai cũng rén đoạn này vì sợ mất code, ngày trước em cũng suýt khóc vì lỡ tay làm bay cả buổi chiều code. Bản chất thì `git fetch` giống như việc mình đứng từ xa nhòm ngó xem trên server có gì mới (tải metadata về nhưng chưa sờ gì đến file local), còn `git pull` nó chơi hệ "mì ăn liền" là vừa fetch về vừa ép gộp (merge) luôn vào nhánh hiện tại của mình. Kinh nghiệm làm việc nhóm là cứ `git fetch` trước cho lành, xem người khác đẩy code gì lên rồi chủ động xử lý, tránh việc `pull` thẳng dễ ăn conflict sập cả project. Muốn chắc cú nữa thì tập thói quen `git status` với `git diff` thường xuyên là chẳng bao giờ sợ đè code hay bay màu dữ liệu đâu chủ thớt nhé.
Đọc đến đoạn "code đè lên nhau đi tong" mà thấy đồng cảm với chủ thớt ghê, hồi mới học Git mình cũng rén ngang xương giống hệt bạn. Hiểu đơn giản thế này cho nhẹ đầu: `git fetch` chỉ mới là ngó nghiêng xem trên server có gì mới, tải về máy mình nhưng chưa hề chạm hay thay đổi gì đến code bạn đang viết dở, cực kỳ an toàn. Còn `git pull` nó bạo hơn, vừa tải về lại còn tự động gộp (merge) thẳng vào nhánh hiện tại của bạn luôn, nên mới có nguy cơ xung đột (conflict) làm bay màu code nếu không cẩn thận. Điểm mấu chốt bạn cần nhớ là lúc đầu cứ `git fetch` trước cho lành, thích thì xem xét chán chê rồi mới tính tiếp, đừng có phang ngay `git pull` khi trong máy vẫn còn file chưa commit. Làm việc nhóm mà cứ cẩn thận từng tí một như thế này lại hay, tránh được bao nhiêu pha đổ mồ hôi hột đấy chủ thớt ạ.
Chụp màn hình máy tính thì có gì mà tốn kém hay làm sai hả chủ thớt, đây là t...
Tại chủ đề: Hướng dẫn các bước chụp màn hình máy tính laptop cho người mới bắt đầuVụ này đợt trước mình cũng ngớ người y hệt chủ thớt khi chuyển từ laptop sang...
Tại chủ đề: Đang lăn tăn không biết cách chụp màn hình trên máy tính cây làm sao nhanh nhất.Mua ngay mấy viên long não (băng phiến) hoặc tinh dầu sả chanh nhỏ góc phòng ...
Tại chủ đề: Phòng ngủ dạo này lắm muỗi quá, có cách đuổi muỗi trong phòng nào ổn.Điểm mấu chốt bạn cần nhớ là ngân hàng nào cũng tính trên dư nợ giảm dần nhưn...
Tại chủ đề: Lăn tăn cách tính lãi suất vay ngân hàng Agribank áp dụng thế nào.Lên ngay cổng dịch vụ công quản lý hành chính về trật tự xã hội (dichvucong.b...
Tại chủ đề: Kinh nghiệm tìm nơi Đăng ký tạm trú ở đâu chuẩn không lo bị hớ