Git 플레이그라운드
코드 스니펫을 작성, 실행, 공유하세요 - 별도 설치가 필요 없습니다.
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도 실행됩니다. 미리 준비된 워크플로를 프롬프트에 불러오고 실행을 눌러 각 명령어가 실행되는 모습을 확인한 다음, 이해하고 싶은 명령어의 전체 가이드를 열어 보세요.
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 플레이그라운드
자바스크립트 흉내가 아니라 격리된 리눅스 터미널에서 진짜 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/main이main옆에서 움직이는 모습이 나타납니다. - 결정적인 실행: 날짜와 작성자 정보가 고정되어 있어 같은 스크립트는 항상 같은 커밋 해시를 만듭니다. 스크립트를 친구와 공유하면 둘 다 똑같은 그래프를 보게 됩니다.
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 config user.name이 이를 덮어씁니다) 와 고정된 커밋 날짜이며, 덕분에 커밋 해시가 매번 동일합니다. 실행 도중에는 무엇도 입력을 요구할 수 없으므로 git rebase -i 같은 대화형 명령어에는 스크립트로 지정한 편집기가 필요합니다 - 예제에서 그 방법을 보여 줍니다.커밋 그래프는 어떻게 동작하나요?
HEAD, stash 목록, git status를 기록합니다. 페이지는 그 스냅샷으로 그래프를 그립니다. 브랜치마다 레인 하나, 머지는 곡선, 모든 ref는 라벨입니다. 단계 번호를 클릭하면 그 줄 직후의 저장소 상태를 볼 수 있습니다. 아주 긴 세션에서는 이전 프롬프트가 끝난 시점에만 기록되며, 단계 띠에는 실제로 기록된 상태만 표시됩니다.여기서 브랜치, 머지, rebase를 연습할 수 있나요?
git push, pull, fetch, clone을 쓸 수 있나요?
git clone https://…은 인터넷에 닿지 못합니다. 하위 폴더에 bare 저장소를 만들고 (git init --bare remote.git) origin으로 추가한 뒤 push, fetch, pull, clone을 해 보세요. 원격 추적 브랜치가 GitHub에서처럼 그래프에 나타납니다.작업 내용이 실행 사이에 유지되나요?
온라인 리눅스 터미널과는 무엇이 다른가요?
Git을 처음부터 가르치는 강의가 있나요?
git init에서 시작해 브랜치, 머지, rebase, 원격 저장소까지 채점되는 연습 문제와 함께 진행됩니다. 그리고 Git 명령어 레퍼런스의 모든 명령어 페이지에는 실행 가능한 예제와 함께 이 플레이그라운드를 여는 "라이브로 사용해 보세요" 버튼이 있습니다.