Revert commit trước đó bằng gitHub desktop GUI

chào ạ, cho em hỏi ngu, e dùng app gitHub trên PC (loại có GUI không phải command line) khi e ấn chuột phải vào commit trong history thì nó bảo merge và commit thay đổi này.

Capture

sau đó code trong IDE hiện thêm dòng HEAD và mã của commit

Capture2

vậy e phải làm gì tiếp theo để undo lại code của commit trước ạ ? trên mạng toàn hướng dẫn và đề xuất dùng lệnh command line. cảm ơn

Bạn có search thử trước khi hỏi chưa?
https://help.github.com/en/desktop/contributing-to-projects/reverting-a-commit
Mà môi trường làm việc ko ai dùng app desktop đâu, nên tập dùng cmd đi bạn.

3 Likes

bạn chịu khó dùng terminal nha vì mình không có gui để diễn tả :venezuela:
lỗi này xuất hiện khi bạn sửa file A ở dòng n, và ai đó cũng đã sửa file A ở dòng n và đẩy lên remote, khi bạn pull code về git sẽ bị conflict và yêu cầu merge bằng tay trước khi kết thúc lệnh pull.
nếu bạn không muốn merge nữa vì conflict quá khó gỡ, bạn chỉ cần:

git merge --abort

lúc này quá trình merge sẽ thoát và quá trình pull cũng hủy bỏ.
commit mới nhất của bạn sẽ được giữ nguyên.
nếu bạn muốn hủy bỏ 1 commit mới nhất của bạn (chưa push lên remote), bạn chỉ cần chạy:

git reset --hard HEAD~

trường hợp lỡ push lên rồi mà muốn hủy commit an toàn, bạn chạy revert, git sẽ tự tạo cho bạn 1 commit mới undo commit cũ, bạn chỉ cần push lên.

git revert HEAD~
git push
4 Likes

Dùng cmd không thực sự giúp mình giỏi hơn đâu :smile:

5 Likes

Mở terminal còn nhanh hơn là mở app :smiley:

4 Likes

Bấm chuột phải vào thư mục chọn menu của TortoiseGit thì nhanh hơn mở terminal :smiley:
Còn bình thường thì khi cần code mới phải thao tác với version control nên mình toàn dùng Git Integrate trong lúc đang code với IDE/Code editor, các thao tác cũng tiện và trực quan. (Và vì chỉ xài lúc đang code hoặc cần check code nên cũng nhanh hơn là “Git Bash Here” :smile:)

Mình cũng thích xài diff/merge tool của IntelliJ nên merge cũng nhanh nữa, TortoiseGit mình cũng set merge tool là IntelliJ.

5 Likes

Mình có nhắc đến việc giúp bạn giỏi hơn? đơn giản là vì lúc làm việc team toàn dùng terminal, cậu chen vô dùng GUI rồi lúc có problem hỏi thì member khác ko biết đường trả lời, team mình cũng có người dùng Source Tree nhưng mà nhìn đống UI nó loạn xì ngầu lên nên ko ai thích cả, có mỗi mem đó cá biệt.

6 Likes

Thế sao bạn lại bảo môi trường làm việc không ai dùng app desktop?
Môi trường làm việc của bạn không phải là môi trường làm việc của người khác. Biết dùng cmd là một lợi thế, nhưng không biết cũng chẳng sao cả, làm quen rồi thì việc bạn dùng Version control gần như không bao giờ phát sinh lỗi, có lỗi gì cũng có GUI để xử lý.

Team mình cũng có người từng xài git bash, cũng ai không giúp được bạn ấy, rồi bạn ấy cũng tự xử lý được, rồi sau cũng xài Source Tree, team vừa giúp được, vừa nhanh chóng, vừa trực quan.

Mình không thể đem code của cty show lên đây để cho thấy tại sao mình thích xài IntelliJ để resolve conflict, bạn có thể xem tạm: https://www.youtube.com/watch?v=OM-Wv9_qRDY

Việc trong team có người xài tool nọ tool kia chả có gì đáng quan ngại, công cụ chỉ là công cụ, ai xài cái gì tốt thì cứ xài, làm sao mình làm việc hiệu quả nhất, nếu có lỗi thì tự sửa, mình chẳng phải là một em sinh viên mới học lập trình năm đầu tiên để phải nhờ người khác giải quyết lỗi của tool, cùng lắm là lúc thực tập thôi chứ đến lúc vào team thì phải tự giải quyết được mấy chuyện vặt vãnh này rồi.

6 Likes

Bạn @Reborn nói không ai xài GUI thì có vẻ hơi quá, vì GUI cũng có cái hay của GUI.
Đương nhiên pick, pick, pick,… tiện hơn nhiều so với add <file1 path>, add <file2 path>, add <file3 path>,… với lại visualize được git timeline + brands + merge
Thỉnh thoảng mình cũng dùng GUI của android studio kết hợp terminal.
Đối với các bạn làm web thì nên tập dùng thêm terminal chứ không nên chỉ dùng GUI thuần, vì web thường người ta deploy server thông qua SSH, chứ không dùng VNC (remote desktop) nữa nên terminal lúc này là bắt buộc.
Terminal cũng không còn khó dùng nữa vì bây giờ đã có git flow hỗ trợ các bạn: https://danielkummer.github.io/git-flow-cheatsheet/index.vi_VN.html

4 Likes

Thì như mình có nói, có người cá biệt dùng trong khi cả công ty ko ai dùng đấy thôi, đa số thắngthiểu số, 1 người dùng thì tính vào làm gì? khi nào mà rất rất nhiều người dùng thì mới coi là phổ biến. Thế sao cậu ko tự hỏi tại sao ban đầu người ta ko làm ra GUI ngay mà dùng terminal? đừng nói thời đó họ ko đủ khả năng làm GUI nhé.

Ban đầu hệ điều hành cũng chạy bằng lệnh mà . Gui làm tốn thời gian hơn à. Bạn chưa sài gui nên chưa biết ưu điểm của nó thôi. Nếu git cmd đủ tốt rồi thì ai chế gui cho mệt nữa

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