Luyện lệnh Git online
Viết, chạy và chia sẻ đoạn code. Không cần thiết lập.
git log --oneline --graph --allCác commit sau bước này
- ea85bd9 Merge branch 'feature' (HEAD -> main) <- f5363c6, 47b6cfb
- 47b6cfb Work on feature (feature) <- b2134da
- f5363c6 Hotfix on main <- b2134da
- b2134da Add app.txt
- Cây làm việc sạch
Mỗi lần Chạy sẽ phát lại toàn bộ script và chụp trạng thái repository sau từng dòng. Nhấn vào một bước để xem đồ thị tại thời điểm đó.
Thử các lệnh Git phổ biến
Git cũng chạy được trong terminal này. Nạp một quy trình có sẵn vào dòng lệnh, nhấn Chạy để xem từng lệnh thực thi, rồi mở hướng dẫn đầy đủ của bất kỳ lệnh nào bạn muốn hiểu rõ.
git initecho "hello" > app.txtgit add app.txtgit commit -m "Add app.txt"git checkout -b featureecho "new feature" >> app.txtgit commit -am "Work on feature"git checkout -git merge featuregit log --oneline --graph
git initecho "v1" > notes.txtgit add notes.txtgit commit -m "Add notes.txt"echo "v2" >> notes.txtgit commit -am "Oops, wrong message"git reset --soft HEAD~1git statusgit commit -m "Update notes.txt"git log --oneline
git initecho "# My Project" > README.mdgit add README.mdgit commit -m "First commit"git branch -M maingit init --bare remote.gitgit remote add origin remote.gitgit push -u origin maingit remote -v
git initecho "v1" > app.txtgit add app.txtgit commit -m "Add app.txt"echo "v2" >> app.txtgit commit -am "WIP"echo "v3" >> app.txtgit commit -am "More WIP"git reset --soft HEAD~2git commit -m "Finish app.txt"git log --oneline
Git playground online với đồ thị commit trực tiếp
Git playground miễn phí chạy git thật trong một terminal Linux cách ly, không phải bản mô phỏng bằng JavaScript. Gõ lệnh ở bên trái (git init, git add, git commit, git branch, git merge, git rebase, git reset), nhấn Chạy, và khung repository bên phải vẽ lại đồ thị commit, các nhánh, HEAD và cây làm việc sau từng dòng trong script. Đây là cách nhanh nhất để luyện Git online và thật sự thấy mỗi lệnh đã làm gì.
Mỗi lần Chạy sẽ phát lại toàn bộ script từ một thư mục trống và chụp lại repository sau từng câu lệnh, nên bạn có thể bấm vào bất kỳ bước nào để xem đồ thị ở đúng thời điểm đó. Commit bị git reset bỏ lại vẫn nằm trên hình, mờ đi, để một thao tác hoàn tác cho thấy rõ nó đã hoàn tác những gì. Không cần cài đặt, không cần tài khoản, và không repository nào của bạn bị đụng tới.
Điều gì làm Git playground này khác biệt
- Git thật, đầu ra thật: sandbox chạy đúng tệp nhị phân
gittrên Linux, nên thông báo lỗi,git log --graph,git statusvà các cờ hoạt động y như trên máy bạn, khác với trình mô phỏng Git chỉ biết những lệnh mà tác giả đã dựng lại. Khác biệt duy nhất có chủ đích: danh tính tác giả và ngày commit được cố định, để mã hash giữ nguyên giữa các lần chạy. - Đồ thị commit cập nhật sau từng dòng: mỗi nhánh là một làn, merge là đường cong,
HEADvà mọi ref là nhãn gắn trên commit tương ứng, cùng các tệp đã stage, đã sửa, chưa theo dõi và đang xung đột đọc từgit status. Bấm vào một bước để tua lại lịch sử phiên làm việc. - Luyện những lệnh được tìm kiếm nhiều nhất: hoàn tác commit, squash commit, rebase lên main, cherry-pick, stash, giải quyết xung đột merge, force-push an toàn. Nạp một quy trình làm sẵn bên dưới, hoặc mở bất kỳ trang nào trong tài liệu tham khảo lệnh Git và nhấn "Thử trực tiếp".
- Remote không cần mạng: tạo một bare repository cục bộ, thêm nó làm
origin, rồi luyệngit push,git fetch,git pullvàgit clonevới nó. Đồ thị cho thấyorigin/maindi chuyển cạnhmain. - Kết quả lặp lại được: ngày tháng và danh tính được cố định, nên cùng một script luôn tạo ra cùng mã hash commit. Chia sẻ script với bạn cùng lớp và cả hai sẽ thấy cùng một đồ thị.
Bạn có thể thử gì trong Git playground
- Tạo nhánh và merge:
git checkout -b feature, commit trên nhánh đó, quay vềmain, commit ở đó nữa, rồigit merge featurevà xem commit merge nối hai làn lại với nhau. - Hoàn tác an toàn: tạo một commit bạn hối hận, chạy
git reset --soft HEAD~1, và xem commit mờ dần khỏi đồ thị trong khi thay đổi của bạn hiện lại thành các tệp đã stage. Sau đó thửgit revertvà so sánh. - Rebase hay merge: dựng cùng một lịch sử hai nhánh hai lần, kết thúc một lần bằng
git mergevà lần kia bằnggit rebase main, rồi so sánh hình dạng của hai đồ thị cạnh nhau. - Cố ý tạo xung đột merge: sửa cùng một dòng trên hai nhánh, merge, và xem tệp đó rơi vào hàng Xung đột. Sửa lại,
git add,git commit, và xem xung đột biến mất.
Câu hỏi thường gặp về Git playground
Git playground này có miễn phí không?
Có. Git playground miễn phí, không cần đăng ký và không cần cài đặt. Mở trang, gõ lệnh, nhấn Chạy.
Đây là Git thật hay chỉ là mô phỏng?
git bên trong một container Linux cách ly, nên lệnh, cờ, đầu ra và thông báo lỗi khớp với những gì bạn thấy trên máy. Có hai thứ được thêm vào có chủ đích: một danh tính tác giả mặc định (bị ghi đè nếu bạn tự chạy git config user.name, giống như trên máy) và ngày commit cố định, để mã hash commit giống nhau ở mọi lần Chạy. Không có gì có thể hỏi bạn giữa chừng, nên lệnh tương tác như git rebase -i cần một trình soạn thảo được viết sẵn bằng script, và các ví dụ có hướng dẫn cách làm.Đồ thị commit hoạt động thế nào?
HEAD, danh sách stash và git status của repository. Trang vẽ đồ thị từ những bản chụp đó: mỗi nhánh một làn, merge là đường cong, mọi ref là một nhãn. Bấm vào số của một bước để xem repository đúng như ngay sau dòng đó. Trong một phiên rất dài, các lệnh trước đó chỉ được ghi lại ở cuối, và dải các bước chỉ hiện những trạng thái đã thực sự được ghi.Có luyện tạo nhánh, merge và rebase ở đây được không?
Được, đồ thị sinh ra chính là để làm việc đó. Tạo nhánh, commit trên đó, merge, rebase, cherry-pick, reset và revert, và xem mỗi thao tác thay đổi bức tranh ra sao. Đây là một lựa chọn thực hành thay cho trò chơi luyện tạo nhánh, với Git thật chạy bên dưới.
Có dùng được git push, pull, fetch và clone không?
git clone https://… không truy cập được internet. Tạo một bare repository trong thư mục con (git init --bare remote.git), thêm nó làm origin, rồi push, fetch, pull và clone từ đó; các nhánh remote-tracking sẽ hiện trong đồ thị giống như với GitHub.Công việc có được giữ lại giữa các lần chạy không?
Không. Mỗi lần Chạy đều bắt đầu từ một thư mục trống và phát lại toàn bộ script, nhờ vậy mới có dòng thời gian. Giữ các lệnh của bạn trong ô nhập lệnh (Shift+Enter để thêm dòng), và dùng Đặt lại để quay về script ban đầu.
Playground này khác terminal Linux online ở điểm nào?
Đây là cùng một terminal cách ly (Git cũng chạy ở đó), có thêm khung repository. Trang terminal Linux dành cho lệnh shell và script; trang này sắp xếp phiên làm việc của bạn để đồ thị commit và trạng thái cây làm việc được ghi lại sau từng dòng.
Có khóa học nào dạy Git từ đầu không?
git init đến nhánh, merge, rebase và remote với các bài tập được chấm, và mỗi trang lệnh trong tài liệu tham khảo lệnh Git đều có nút "Thử trực tiếp" mở playground này với một ví dụ chạy được.