0
0
Lập trình
Admin Team
Admin Teamtechmely

10 Tình Huống Thường Gặp Khi Sử Dụng Git Và Cách Giải Quyết Hiệu Quả

Đăng vào 3 ngày trước

• 4 phút đọc

Chủ đề:

GitTechMely

Năm mới xuân sang, chúc anh em thật nhiều sức khỏe, miệng cười vui vẻ, tiền vào mạnh mẽ, công việc suôn sẻ, cuộc đời đẹp đẽ, sự nghiệp lên hương, thật nhiều người thương, may mắn đủ đường. Chúc mừng năm mới 🎆🎆🎆

Giới thiệu

Chào mừng bạn đến với bài viết khám phá 10 tình huống thường gặp trong Git! Trong quá trình làm việc với Git, bạn có thể sẽ gặp phải một số tình huống khó xử lý. Bài viết này sẽ cung cấp cho bạn những tình huống phổ biến và cách giải quyết chúng một cách hiệu quả nhất. Hãy cùng tìm hiểu!

Tình huống 1: Xử lý Conflict

Khi làm việc trong một nhóm, việc xung đột mã (conflict) là điều không thể tránh khỏi. Điều này thường xảy ra khi hai thành viên chỉnh sửa cùng một phần mã.
Ví dụ, Tèo và Tí đều chỉnh sửa dòng đầu tiên trong file user.js trên các nhánh khác nhau. Khi Tèo merge nhánh create-user vào nhánh dev, mọi thứ vẫn diễn ra suôn sẻ. Tuy nhiên, khi Tí cố gắng merge nhánh view-user, xung đột xảy ra.
Để giải quyết vấn đề này, Tí cần thực hiện các bước sau:
1. Xác định code bị conflict:
Sử dụng lệnh git status để tìm ra những file bị xung đột. Trong user.js, bạn sẽ thấy có nội dung như sau:

Copy
<<<<<<< HEAD  
code của Tèo  
=======  
code của Tí  
>>>>>>> view-user  

2. Giải quyết conflict:
Trao đổi với Tèo để xác định nên giữ lại phần mã nào hoặc kết hợp cả hai phần. Sau đó, loại bỏ ký hiệu <<<<<<<, =======, và >>>>>>.
Sử dụng lệnh git add user.jsgit commit để hoàn tất quá trình merge.
3. Kiểm tra lại và push lên remote:
Sử dụng git status để kiểm tra tình trạng sau khi giải quyết xung đột, sau đó thực hiện lệnh git push để đẩy thay đổi lên remote.
Chú ý: Để hạn chế xung đột, bạn nên thường xuyên pull và commit mã nguồn.

Tình huống 2: Xem Lịch Sử Commit

Sử dụng lệnh git log để xem lịch sử commit bao gồm hash commit, tác giả, thời gian và thông điệp commit. Ví dụ:

Copy
commit 7a2cbffba6023df7f37dd1808f46d5a6b59d810b  
Author: teo <teo@gmail.com>  
Date:   Fri Feb 11 10:05:00 2024 +0700  
    Create log  

Ngoài ra, bạn cũng có thể sử dụng git reflog để xem lịch sử hoạt động trên Git, rất hữu ích cho việc khôi phục các thao tác trước đó.

Tình huống 3: Xóa Commit

Khi bạn nhận thấy có lỗi trong mã đã được commit, bạn có thể sử dụng git reset hoặc git revert để khôi phục. Ví dụ, git reset có thể được sử dụng với ba tùy chọn:

  • git reset <commit>: Giữ lại thay đổi trong staging.
  • git reset --soft <commit>: Giữ lại thay đổi trong working directory.
  • git reset --hard <commit>: Xóa tất cả thay đổi trong cả staging và working directory.

Tình huống 4: Khôi Phục Commit

Nếu bạn lỡ sử dụng lệnh --hard và làm mất mã của mình, bạn có thể khôi phục commit bằng lệnh git reflog để lấy hash commit và sau đó sử dụng git reset --hard <hash>.

Tình huống 5: Gộp Nhiều Commit Thành Một

Khi bạn có nhiều commit nhỏ và muốn gộp lại thành một commit lớn hơn, bạn có thể sử dụng git rebase -i HEAD^n để thực hiện. Trong cửa sổ mở ra, chuyển pick thành squash cho những commit bạn muốn gộp và lưu lại.

Tình huống 6: Chỉnh Sửa Thông Điệp Commit

Nếu bạn cần thay đổi thông điệp commit đã thực hiện, bạn có thể sử dụng git commit --amend -m "new_message" cho commit mới nhất hoặc git rebase -i HEAD~n cho nhiều commit.

Tình huống 7: Đổi Tên Branch

Khi bạn đặt tên nhánh không đúng, bạn có thể sử dụng git branch -m new_branch để chỉnh sửa lại tên nhánh.

Tình huống 8: Không Thể Checkout Qua Nhánh Khác

Khi bạn gặp lỗi khi cố gắng chuyển nhánh, có thể bạn cần commit hoặc sử dụng lệnh git stash để lưu trữ các thay đổi tạm thời. Khi muốn quay lại, bạn có thể sử dụng git stash pop.

Tình huống 9: Khôi Phục Trạng Thái Trước Khi Merge

Nếu sau khi merge mà bạn phát hiện lỗi, bạn có thể sử dụng git reset --hard ORIG_HEAD để trở về trạng thái trước khi merge.

Tình huống 10: Merge Một Commit Bất Kỳ Vào Nhánh Khác

Bạn có thể sử dụng git cherry-pick <commit> để merge một commit cụ thể vào nhánh khác mà không cần phải merge toàn bộ nhánh.

Kết Bài

Hy vọng rằng bài viết đã cung cấp cho bạn những kiến thức bổ ích về 10 tình huống thường gặp trong Git và giúp bạn làm việc hiệu quả hơn với Git. Đừng quên tham khảo thêm các tài liệu khác để nâng cao kỹ năng lập trình của mình nhé! Cảm ơn bạn đã đọc.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào