Menu
CoddyTech

Luyện lệnh Git online

Viết, chạy và chia sẻ đoạn code. Không cần thiết lập.

Terminal Git
user$ git init -q
user$ git symbolic-ref HEAD refs/heads/main
user$ git config user.name "You"
user$ git config user.email "you@example.com"
user$ echo "content" > a.txt
user$ git add a.txt
user$ git commit -m "Add a.txt"
user$
Repository

Nhấn Chạy để xem đồ thị commit.

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õ.

Tạo repo và commit lần đầuKhởi tạo repository, stage một tệp, commit rồi kiểm tra trạng thái.
  1. git init
  2. git config user.name "You"
  3. git config user.email "you@example.com"
  4. echo "# My Project" > README.md
  5. git add README.md
  6. git commit -m "Initial commit"
  7. git status
  8. git log --oneline
Tạo nhánh và mergeTách nhánh, thay đổi, commit, rồi merge nhánh trở lại main.
  1. git init
  2. echo "hello" > app.txt
  3. git add app.txt
  4. git commit -m "Add app.txt"
  5. git checkout -b feature
  6. echo "new feature" >> app.txt
  7. git commit -am "Work on feature"
  8. git checkout -
  9. git merge feature
  10. git log --oneline --graph
Hoàn tác commit cuốiTạo một commit bạn hối hận, rồi hoàn tác nó mà vẫn giữ các thay đổi.
  1. git init
  2. echo "v1" > notes.txt
  3. git add notes.txt
  4. git commit -m "Add notes.txt"
  5. echo "v2" >> notes.txt
  6. git commit -am "Oops, wrong message"
  7. git reset --soft HEAD~1
  8. git status
  9. git commit -m "Update notes.txt"
  10. git log --oneline
Push lên remote lần đầuChạy ba lệnh mà GitHub hiển thị cho repository mới, với một remote cục bộ.
  1. git init
  2. echo "# My Project" > README.md
  3. git add README.md
  4. git commit -m "First commit"
  5. git branch -M main
  6. git init --bare remote.git
  7. git remote add origin remote.git
  8. git push -u origin main
  9. git remote -v
Gộp các commit thành mộtBiến hai commit đang làm dở thành một commit gọn gàng mà không cần trình soạn thảo.
  1. git init
  2. echo "v1" > app.txt
  3. git add app.txt
  4. git commit -m "Add app.txt"
  5. echo "v2" >> app.txt
  6. git commit -am "WIP"
  7. echo "v3" >> app.txt
  8. git commit -am "More WIP"
  9. git reset --soft HEAD~2
  10. git commit -m "Finish app.txt"
  11. git log --oneline
Cherry-pick một commit từ nhánh khácChép một bản sửa từ một nhánh sang main mà không cần merge cả nhánh.
  1. git init
  2. echo "hello" > app.txt
  3. git add app.txt
  4. git commit -m "Add app.txt"
  5. git checkout -b hotfix
  6. echo "fixed" > fix.txt
  7. git add fix.txt
  8. git commit -m "Fix the bug"
  9. git checkout -
  10. git cherry-pick hotfix
  11. git log --oneline --all --graph

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 git trên Linux, nên thông báo lỗi, git log --graph, git status và 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, HEAD và 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ện git push, git fetch, git pull và git clone với nó. Đồ thị cho thấy origin/main di chuyển cạnh main.
  • 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ồi git merge feature và 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 revert và 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 merge và lần kia bằng git 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 thật. Mỗi lần Chạy sẽ thực thi script của bạn bằng đúng tệp nhị phân 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?
Sau mỗi câu lệnh trong script, sandbox ghi lại các commit, ref, 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?
Được, với một remote cục bộ. Sandbox không có kết nối mạng, nên 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?
Có. Khóa học Git miễn phí của Coddy đi từ 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.