Menu
Coddy logo textTech

Git 플레이그라운드

코드 스니펫을 작성, 실행, 공유하세요 - 별도 설치가 필요 없습니다.

Git 터미널
user$ git init
user$ echo "hello" > app.txt
user$ git add app.txt
user$ git commit -m "Add app.txt"
user$ git checkout -b feature
user$ echo "new feature" >> app.txt
user$ git commit -am "Work on feature"
user$ git checkout main
user$ echo "fix" > fix.txt
user$ git add fix.txt
user$ git commit -m "Hotfix on main"
user$ git merge feature
user$
저장소main 브랜치
git log --oneline --graph --all

이 단계 이후의 커밋

  • ea85bd9 Merge branch 'feature' (HEAD -> main) <- f5363c6, 47b6cfb
  • 47b6cfb Work on feature (feature) <- b2134da
  • f5363c6 Hotfix on main <- b2134da
  • b2134da Add app.txt
  • 작업 트리가 깨끗합니다

실행할 때마다 스크립트 전체를 다시 재생하고 각 줄 다음에 저장소 스냅샷을 찍습니다. 단계를 클릭하면 그 시점의 그래프가 보입니다.

자주 쓰는 Git 명령어 사용해 보기

이 터미널에서 Git도 실행됩니다. 미리 준비된 워크플로를 프롬프트에 불러오고 실행을 눌러 각 명령어가 실행되는 모습을 확인한 다음, 이해하고 싶은 명령어의 전체 가이드를 열어 보세요.

저장소를 만들고 첫 커밋하기저장소를 초기화하고 파일을 스테이징한 뒤 커밋하고 상태를 확인합니다.
  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
브랜치를 만들고 병합하기브랜치를 만들고 변경 후 커밋한 다음, 브랜치를 다시 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
마지막 커밋 되돌리기후회할 만한 커밋을 만든 뒤 변경 사항은 유지하면서 되돌립니다.
  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

실시간 커밋 그래프가 있는 온라인 Git 플레이그라운드

자바스크립트 흉내가 아니라 격리된 리눅스 터미널에서 진짜 git을 실행하는 무료 Git 플레이그라운드입니다. 왼쪽에 명령어를 입력하고 - git init, git add, git commit, git branch, git merge, git rebase, git reset - 실행을 누르면, 오른쪽 저장소 패널이 스크립트의 한 줄마다 커밋 그래프와 브랜치, HEAD, 작업 트리를 다시 그립니다. Git을 온라인으로 연습하면서 각 명령어가 무엇을 했는지 실제로 눈으로 확인하는 가장 빠른 방법입니다.

실행할 때마다 스크립트 전체가 빈 폴더에서 다시 재생되고 각 문장 뒤에 저장소 스냅샷이 기록되므로, 아무 단계나 클릭하면 바로 그 시점의 그래프를 볼 수 있습니다. git reset이 뒤에 남긴 커밋도 흐리게 그림에 남아 있어서, 되돌리기가 무엇을 되돌렸는지 알 수 있습니다. 설치도 계정도 필요 없고, 여러분의 저장소는 절대 건드리지 않습니다.

이 Git 플레이그라운드가 다른 점

  • 진짜 Git, 진짜 출력: 샌드박스가 리눅스에서 진짜 git 바이너리를 실행하므로 오류 메시지, git log --graph, git status, 플래그가 내 컴퓨터에서와 같이 동작합니다. 제작자가 흉내 낸 명령어만 아는 Git 시뮬레이터와는 다릅니다. 의도적으로 다른 점은 하나뿐입니다. 작성자 정보와 커밋 날짜가 고정되어 있어 실행할 때마다 해시가 같게 유지됩니다.
  • 한 줄마다 갱신되는 커밋 그래프: 브랜치는 레인으로, 머지는 곡선으로, HEAD와 모든 ref는 해당 커밋 위의 라벨로 표시되고, git status에서 읽은 스테이징된 파일, 수정된 파일, 추적되지 않는 파일, 충돌 파일도 함께 보여 줍니다. 단계를 클릭하면 세션의 기록을 앞뒤로 훑어볼 수 있습니다.
  • 사람들이 가장 많이 찾는 명령어를 연습하세요: 커밋 되돌리기, 커밋 squash, main 위로 rebase, cherry-pick, stash, 머지 충돌 해결, 안전한 force-push. 아래에서 미리 만들어 둔 워크플로를 불러오거나, Git 명령어 레퍼런스의 아무 페이지에서나 "라이브로 사용해 보세요"를 누르면 됩니다.
  • 네트워크 없이 원격 저장소 연습: 로컬 bare 저장소를 만들고 origin으로 추가한 뒤 git push, git fetch, git pull, git clone을 연습해 보세요. 그래프에는 origin/mainmain 옆에서 움직이는 모습이 나타납니다.
  • 결정적인 실행: 날짜와 작성자 정보가 고정되어 있어 같은 스크립트는 항상 같은 커밋 해시를 만듭니다. 스크립트를 친구와 공유하면 둘 다 똑같은 그래프를 보게 됩니다.

Git 플레이그라운드에서 해 볼 것

  • 브랜치와 머지: git checkout -b feature로 브랜치를 만들어 커밋하고, main으로 돌아와 거기서도 커밋한 다음 git merge feature를 실행해 머지 커밋이 두 레인을 잇는 모습을 확인하세요.
  • 안전하게 되돌리기: 후회할 커밋을 하나 만든 뒤 git reset --soft HEAD~1을 실행하면, 커밋이 그래프에서 흐려지는 동안 변경 사항이 스테이징된 파일로 다시 나타납니다. 이어서 git revert도 해 보고 비교해 보세요.
  • rebase와 merge 비교: 두 브랜치로 이루어진 같은 기록을 두 번 만들어 하나는 git merge로, 다른 하나는 git rebase main으로 마무리하고 두 그래프의 모양을 나란히 비교해 보세요.
  • 일부러 머지 충돌 만들기: 두 브랜치에서 같은 줄을 고친 뒤 머지하면 파일이 충돌 줄에 나타납니다. 고친 다음 git add, git commit을 실행하면 충돌이 사라집니다.

Git 플레이그라운드 FAQ

이 Git 플레이그라운드는 무료인가요?
네. Git 플레이그라운드는 무료이며 가입도 설치도 필요 없습니다. 페이지를 열고 명령어를 입력한 뒤 실행을 누르세요.
진짜 Git인가요, 시뮬레이션인가요?
진짜 Git입니다. 실행할 때마다 격리된 리눅스 컨테이너 안의 진짜 git 바이너리로 스크립트가 실행되므로 명령어, 플래그, 출력, 오류 메시지가 로컬에서 보는 것과 일치합니다. 의도적으로 추가한 것은 두 가지입니다. 기본 작성자 정보 (로컬에서와 마찬가지로 직접 지정한 git config user.name이 이를 덮어씁니다) 와 고정된 커밋 날짜이며, 덕분에 커밋 해시가 매번 동일합니다. 실행 도중에는 무엇도 입력을 요구할 수 없으므로 git rebase -i 같은 대화형 명령어에는 스크립트로 지정한 편집기가 필요합니다 - 예제에서 그 방법을 보여 줍니다.
커밋 그래프는 어떻게 동작하나요?
스크립트의 각 문장이 끝날 때마다 샌드박스가 저장소의 커밋, ref, HEAD, stash 목록, git status를 기록합니다. 페이지는 그 스냅샷으로 그래프를 그립니다. 브랜치마다 레인 하나, 머지는 곡선, 모든 ref는 라벨입니다. 단계 번호를 클릭하면 그 줄 직후의 저장소 상태를 볼 수 있습니다. 아주 긴 세션에서는 이전 프롬프트가 끝난 시점에만 기록되며, 단계 띠에는 실제로 기록된 상태만 표시됩니다.
여기서 브랜치, 머지, rebase를 연습할 수 있나요?
네, 그래프가 바로 그것을 위한 것입니다. 브랜치를 만들고 커밋하고, 머지, rebase, cherry-pick, reset, revert를 실행하면서 각 작업이 그림을 어떻게 바꾸는지 확인하세요. 뒤에서 진짜 Git이 도는, 브랜치 학습 게임의 실전형 대안입니다.
git push, pull, fetch, clone을 쓸 수 있나요?
로컬 원격 저장소를 상대로는 가능합니다. 샌드박스에는 네트워크 접근이 없어 git clone https://…은 인터넷에 닿지 못합니다. 하위 폴더에 bare 저장소를 만들고 (git init --bare remote.git) origin으로 추가한 뒤 push, fetch, pull, clone을 해 보세요. 원격 추적 브랜치가 GitHub에서처럼 그래프에 나타납니다.
작업 내용이 실행 사이에 유지되나요?
아니요. 실행할 때마다 빈 폴더에서 시작해 스크립트 전체를 다시 재생하며, 바로 그 덕분에 타임라인이 가능합니다. 명령어는 프롬프트에 그대로 두고 (Shift+Enter로 줄 추가), 시작 스크립트로 돌아가려면 초기화를 사용하세요.
온라인 리눅스 터미널과는 무엇이 다른가요?
같은 샌드박스 터미널(Git도 거기서 돕니다)에 저장소 패널을 더한 것입니다. 리눅스 터미널 페이지는 셸 명령어와 스크립트를 위한 곳이고, 이 페이지는 한 줄마다 커밋 그래프와 작업 트리 상태가 기록되도록 세션을 구성합니다.
Git을 처음부터 가르치는 강의가 있나요?
네. Coddy의 무료 Git 강의는 git init에서 시작해 브랜치, 머지, rebase, 원격 저장소까지 채점되는 연습 문제와 함께 진행됩니다. 그리고 Git 명령어 레퍼런스의 모든 명령어 페이지에는 실행 가능한 예제와 함께 이 플레이그라운드를 여는 "라이브로 사용해 보세요" 버튼이 있습니다.