Tôi Vừa Lỡ Commit Sai, Làm Sao để Sửa Lại Ngay Lập Tức? - v
Có thể bạn quan tâm
- 👤Đăng nhập
- 🇻🇳Tiếng Việt
- 💡Chế độ
🎉Tính năng mới
Khám phá bài viết hàng tuần dành cho bạn bằng cách bấm vào đây.
Đã hiểu 👌Làm nhiều rồi, hôm nay mọi người giải trí tí nha ☺️
Size of Life
» Xem thêm2 ngày cuối tuần chủ yếu dành thời gian để viết một ứng dụng dạng "todo list" đơn giản bằng Rust, có các lệnh cơ bản như là thêm/xoá/đánh dấu hoàn thành... Mục đích là để làm quen với cú pháp và cảm giác lập trình với ngôn ngữ vừa mới học được.
Trải qua nhiều lần tự học ngôn ngữ lập trình mới, cách mình hay áp dụng là đọc lý thuyết, xem ví dụ, đọc lại lý thuyết, xem ví dụ... cho đến khi tự tin viết một chương trình đơn giản. Trước đây mình học Go, tài liệu của nó rất tốt, ngắn gọn, súc tích, đi thẳng vào vấn đề, duy chỉ có trang tài liệu thư viện thì cực tệ, quá rối rắm, nhiều cái vào chỉ đơn giản là liệt kê lại tất cả hàm có trong đó. Tài liệu của Rust thì khác, cực kỳ chi tiết và cách họ viết rất "cuốn". Đại ý là có giá trị đọc lại rất cao vì mỗi lần đọc là ngẫm thêm được cái mới. Thật sự rất thích cách viết tài liệu của họ.
Nhân tiện đang tập trung vào Rust, chắc sắp tới lại làm thêm một chuỗi bài viết nho nhỏ trong mục Posts kể lại quá trình viết ứng dụng 🤓
» Xem thêmThật kỳ lạ khi còn mười mấy hai chục ngày nữa thôi là hết năm 2025, trong khi người người nhà nhà kháo nhau làm thế nào để "vibe code" hiệu quả, hoặc khoe chiến tích chỉ trong vài ngày thôi là tạo ra được nhiều chương trình mơ ước mà trước đây có khi mất đến cả tháng còn chưa xong. Thì mình vẫn ngồi cặm cụi ghi chép lại những gì học được với Rust.
Là sao? Vibe code đi chứ, huh? Thích đi ngược với thời đại à?... Đó là một trong rất nhiều câu hỏi trong đầu, mà nói thẳng ra thì đúng là không thích làm như thế. Quay trở lại với những ngày đầu, có cậu học sinh trong tà áo trắng, khăn quàng đỏ, ngồi ngay ngắn trong phòng học giải toán. Cho đến khi cậu biết cách copy/paste đoạn mã HTML đầu tiên, mở ra vùng trời kiến thức mà chỉ một mình mình mới nhìn thấy. Làm đến đâu càng cảm thấy thoả mãn bản thân đến đó. Tại sao đoạn mã đó lại bắt máy tính làm được việc?
Với mình thì lập trình phần nào như sở thích cá nhân, như bên cạnh cà phê với đọc sách và viết, mà đặc biệt là viết. Viết ra những dòng mã cũng gần như là viết văn xuôi. Làm chủ những gì sắp viết cũng như hiểu mình đang muốn viết gì và tại sao lại viết như thế. Điều đó quan trọng hơn là kết quả. Vì mỗi lần viết là một lần học, học giúp tiến bộ, không bị dậm chân tại chỗ. Ý là tự thân cảm nhận được bản thân hôm nay là phiên bản tốt hơn hôm qua. Thế cũng là một niềm vui trong cuộc sống rồi.
Vibe code thì có lẽ đi ngược lại với sở thích, nghĩa là nó cho thấy kết quả nhưng lại bỏ qua quá trình nên nhiều khi không cảm nhận được cái gì hết, vì đoạn mã đó không phải tự tay viết ra. Thứ nhìn vào lúc này thật vô hồn, vô cảm xúc, không giống với những lúc đập bàn thốt lên "Ôi thôi chết quên xử lý case này rồi!" hoặc "À thì ra là vậy! Cuối cùng thì cũng hiểu". Nói vậy chứ không hề phủ nhận lợi ích của LLMs, nhờ có nó mà việc học trở nên dễ thở hơn rất nhiều.
Còn bạn nghĩ sao 😁?
» Xem thêm
Vấn đề
Lưu ý: Nếu bạn đang tìm kiếm xoá commit đã push hãy tham khảo giải pháp này Làm thế nào để xóa commit đã push?. Bài viết dưới đây chỉ là hướng dẫn xóa commit "chưa" push nhưng không hiểu sao lại lọt vào kết quả tìm kiếm của Google nhiều nhất. Xin cảm ơn!
Nhiệm vụ hàng ngày của lập trình viên là viết mã, cho đến chiều tối trước khi ra về chúng ta thường kháo nhau rằng "đã commit code lên chưa đấy?". Hay thi thoảng lại nghe một câu đùa tai quái như dù trời có sập thì trước khi ra về đừng quên commit code. Vì sự thúc giục vội vàng từ ai đó mà sau khi commit xong, bạn phát hiện ra còn một tệp nữa quên chưa thêm vào cùng với commit. Tức lắm luôn mà chẳng lẽ phải thêm một commit mới để đẩy nốt lên remote?
Nhiều người chọn cách tạo một commit mới để sửa chữa lỗi lầm, nhưng điều đó hơi thừa vì có thể bạn chưa biết rằng commit chưa push lên vẫn còn khả năng sửa lại được. Vậy làm thế nào để sửa lại commit ngay lập tức?
Thêm nội dung mới vào commit
Git cho phép chúng ta thay đổi commit cuối cùng bằng lệnh git commit --amend --no-edit.
Ví dụ ngay khi vừa commit xong, phát hiện ra mình quên chưa add README.md:
$ git add README.md $ git commit --amend --no-editThế là xong, thay đổi của README.md lúc này đã xuất hiện trong nội dung của commit cuối cùng.
Bỏ nội dung khỏi commit
Tương tự, nếu lỡ thêm nhầm một tệp, có thể gỡ ra bằng cách dùng git reset HEAD^ path/to/file.
Ví dụ ngay khi vừa commit xong, phát hiện ra lỡ tay add README.md vào trong commit, muốn bỏ ra thì:
$ git reset HEAD^ README.md $ git commit --amend --no-editSửa lại message của commit
Git cũng cho phép bạn sửa lại message của commit cuối cùng bằng lệnh git commit --amend -m <message>.
$ git commit --amend -m "edited message"Soft reset
Đây là cách khi bạn muốn đem mọi thứ quay trở lại với trước khi commit. Tức là huỷ commit cuối cùng nhưng giữ lại tất cả thay đổi ở trạng thái đã git add (staged).
$ git reset --soft HEAD^Lệnh này huỷ bỏ commit cuối cùng và đưa tất cả thay đổi trở lại staged, giúp bạn bắt đầu commit lại từ đầu.
Xoá commit chưa push mà không cần revert
Cách này áp dụng trong trường mới commit ở local và chưa push lên remote.
$ git reset --hard origin/branchVới origin là remote và branch là nhánh đang làm việc.
Lưu ý: hard reset đồng bộ remote với local. Nghĩa là remote đang có những commit nào thì mang xuống local. Tất cả commit ở local mà không có trên remote sẽ bị xoá hết. Cẩn thận khi sử dụng.
Ví dụ tôi vừa lỡ commit vào develop. Muốn xoá nó đi thì:
$ git reset --hard origin/develop Cao cấp5 bài học sâu sắc
Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!
Tìm hiểu ngayXem tất cảKevin Systrom - đồng sáng lập Instargram đã phát triển ứng dụng Instagram từ một ý tưởng cá nhân về chia sẻ hình ảnh đẹp. Chỉ sau 2 năm, Instagram được Facebook mua lại với giá 1 tỷ USD. Elon Musk học lập trình từ năm 10 tuổi, lập trình và bán trò chơi điện tử đầu tiên với giá 500$ khi mới 12 tuổi. Điểm chung của họ là có niềm đam mê tự học lập trình, và đều bắt đầu từ những dự án cá nhân của mình. Ngoài kia, còn rất nhiều câu chuyện về sự thành công của nhiều người khác. Tất nhiên! Họ phải bắt đầu từ đâu đó.
Tại 2coffee.dev, chúng tôi biết rằng không thể so sánh với những tên tuổi lớn. Chúng tôi đơn giản bắt đầu từ niềm đam mê công nghệ cùng với những con chữ, với hy vọng truyền đạt được thông điệp và bài học đến với mọi người. Trải qua chặng đường 5 năm phát triển, chúng tôi đã đạt được thành công nhất định, đáng chú ý nhất là những bài học.
Trong bài viết này, chúng tôi sẽ điểm lại 5 bài học sâu sắc, đúc kết từ quá trình làm một Blogger. Hãy trở thành hội viên để nghe câu chuyện ngay hôm nay!
Đăng ký hội viên ngay ** Gói hội viên chưa có sẵn. Vui lòng quay lại sau.Tôi hiểu rồiĐăng ký nhận thông báo bài viết mới
Hãy cho phép gửi thông báohoặchoặcGửi* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.Bình luận (3)
Nội dung bình luận...Bình luận
Ẩn danh* Bình luận ẩn danh cần kiểm duyệt để hiển thịGửi
Ẩn danh1 năm trướcMuốn sửa lại message của commit cũ ko phải commit gần nhất, thì làm sao ạ?
Trả lờiBình luận
Ẩn danh1 năm trướcMuốn sửa lại message của commit cũ ko phải commit gần nhất, thì làm sao ạ?
Ẩn danh* Bình luận ẩn danh cần kiểm duyệt để hiển thịGửiHơi khó em ạ, nếu thế em phải làm một số lệnh rồi force push lên remote. Mà để làm vậy thì tương đối khó, vì chẳng ai dám force push vì phát sinh nhiều vấn đề trong làm việc nhóm. Còn nếu dự án của em, một mình em làm thì em có thể force nếu muốn.
Lê Kế Hiền2 năm trướcvậy dùng source tree cho dễ =)) cl rối rắm
Trả lờiBình luận
Lê Kế Hiền2 năm trướcvậy dùng source tree cho dễ =)) cl rối rắm
Ẩn danh* Bình luận ẩn danh cần kiểm duyệt để hiển thịGửi"Lưu ý rằng việc này cũng đồng nghĩa với những commit chưa push ở local sẽ bị mất hết và bạn sẽ phải viết lại.". câu này có nghĩa là những đoạn code thay đổi ở commit đó cũng mất hết à bạn
Trả lờiBình luận"Lưu ý rằng việc này cũng đồng nghĩa với những commit chưa push ở local sẽ bị mất hết và bạn sẽ phải viết lại.". câu này có nghĩa là những đoạn code thay đổi ở commit đó cũng mất hết à bạn
Ẩn danh* Bình luận ẩn danh cần kiểm duyệt để hiển thịGửiĐúng rồi bạn, vì lệnh đó là reset lại branch local cho giống y hệt remote nên commit bạn chưa push ở local cũng sẽ bị mất hết
Xin chào, tôi là Hoài.
Bấm vào để làm quen!
Nâng cấp tài khoản
Rẻ nhấtPremium
🔥 28.000đ/tháng84.000đ/tháng- ✓Trải nghiệm không quảng cáo
- ✓Tóm tắt bài viết
- ✓Biểu tượng cao cấp
- ✓Phiên bản tối giản
Premium Plus
85.000đ/tháng255.000đ/tháng- ✓Tất cả tính năng của Premium
- ✓3 thẻ bài viết / tháng
Premium
28.000đ/tháng7 ngày dùng thử miễn phíKích hoạt dùng thửKhi mua, bạn đồng ý vớiĐiều khoản dịch vụTừ khóa » Xóa Commit Trong Github
-
Hủy Bỏ Commit Trước đó [Thay đổi Commit] | Hướng Dẫn Về Git Cho ...
-
[Git] Xóa Một Commit Từ Một Branch - Kipalog
-
Hướng Dẫn Cách Xóa Thay đổi Commit Trên Remote Github - Jundat95
-
Git 03: Lệnh Git Reset, Hủy (undo) Commit, Xóa Commit - YouTube
-
Dùng Lệnh Git Reset Hủy Commit Cuối Hoặc Staging
-
Git Reset "undo Commit"
-
Undo Commit / Hủy Bỏ Commit Mới Nhất Trong GIT - VinaSupport
-
Một Số Trường Hợp Khi Sử Dụng Git - Viblo
-
Giới Thiệu 3 Cách Undo Commit Hoặc Loại Bỏ Commit Cơ Bản | TopDev
-
Remove Những File đã được Commit Vào Git Repository - The Little Coder
-
[Git] Xoá Tận Gốc Rễ Một File đã Từng Push Lên Github
-
Undo Committed Change In Git - Techmaster
-
Xóa Tất Cả Lịch Sử Commit Trên Git Giữ Lại Commit Hiện Tại
-
Cách Xóa Một Nhánh Trong Git Cục Bộ Và Từ Xa - THPT Sóc Trăng