
Git 입문

Redirecting…
git-scm.com





폴더 위치 특정 git bash 열기




워킹 디렉토리 : 사용자가 실제로 보고 있는 폴더를 뜻함
스테이징 영역 : 사용자가 기록하고 싶어서 체크해둔 파일들이 임시 저장된 가상의 공간을 뜻함
저장소 : 실제로 사용자가 기록에 남겨 둔 '문서 버전'
$ git status # 깃 프로젝트의 상태 확인하기
$ git add <문서이름> # 워킹 디렉터리 내 문서를 스테이징 영역에 추가하는 깃 명령어
$ git commit -m "<커밋 메시지>" # 스테이징 영역 내에 대기 중인 문서를 리포지토리에 추가하는 깃 명령어
$ git log # 커밋한 수정 이력을 확인하는 깃 명령어

숨김 폴더까지 확인

$ git log -p # 커밋의 변경사항까지 함께 출력하기
$ git log --oneline # 각 커밋을 요약해 한 줄 씩으로 출력하는 옵션
$ git checkout <커밋해시> # 문서 내용을 특정 커밋의 내용으로 되돌리기
$ git reflog # HEAD 포인터의 참조 이력을 출력하는 깃 명령어






실습
1. git log 결과, 이력이 3개 이상인 상태 만들기
2. 과거의 이력으로 복구하고, 다시 최신 이력으로 돌아오는 작업
3. 이 과정에서 안되는 부분은 반드시 짚고 넘어가기
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text ((05053bf...))
$ git log
commit 05053bffae7056ae9f6206b2f5c28b6df9bde6d9 (HEAD)
Author: steeze1213 <steeze1213@gmail.com>
Date: Mon Feb 9 11:17:18 2026 +0900
first commit
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text ((05053bf...))
$ git reflog
05053bf (HEAD) HEAD@{0}: checkout: moving from master to 05053bf
ee4b512 (master) HEAD@{1}: commit: second commit
05053bf (HEAD) HEAD@{2}: commit (initial): first commit
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text ((05053bf...))
$ git checkout master
Previous HEAD position was 05053bf first commit
Switched to branch 'master'
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text (master)
$ git log
commit ee4b512aaeb947da01fb1add86ab52b2340a45ac (HEAD -> master)
Author: steeze1213 <steeze1213@gmail.com>
Date: Mon Feb 9 11:34:00 2026 +0900
second commit
commit 05053bffae7056ae9f6206b2f5c28b6df9bde6d9
Author: steeze1213 <steeze1213@gmail.com>
Date: Mon Feb 9 11:17:18 2026 +0900
first commit
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text (master)
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
content2.txt
nothing added to commit but untracked files present (use "git add" to track)
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text (master)
$ git add .
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text (master)
$ git commit -m "third commit"
[master cf8ac66] third commit
1 file changed, 1 insertion(+)
create mode 100644 content2.txt
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text (master)
$ git log
commit cf8ac66af048c28afda45d40c6206e9ca7caae2d (HEAD -> master)
Author: steeze1213 <steeze1213@gmail.com>
Date: Mon Feb 9 11:56:49 2026 +0900
third commit
commit ee4b512aaeb947da01fb1add86ab52b2340a45ac
Author: steeze1213 <steeze1213@gmail.com>
Date: Mon Feb 9 11:34:00 2026 +0900
second commit
commit 05053bffae7056ae9f6206b2f5c28b6df9bde6d9
Author: steeze1213 <steeze1213@gmail.com>
Date: Mon Feb 9 11:17:18 2026 +0900
first commit
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text (master)
$ git log --oneline
cf8ac66 (HEAD -> master) third commit
ee4b512 second commit
05053bf first commit
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text (master)
$ git checkout ee4b512
Note: switching to 'ee4b512'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at ee4b512 second commit
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text ((ee4b512...))
$ git log
commit ee4b512aaeb947da01fb1add86ab52b2340a45ac (HEAD)
Author: steeze1213 <steeze1213@gmail.com>
Date: Mon Feb 9 11:34:00 2026 +0900
second commit
commit 05053bffae7056ae9f6206b2f5c28b6df9bde6d9
Author: steeze1213 <steeze1213@gmail.com>
Date: Mon Feb 9 11:17:18 2026 +0900
first commit
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text ((ee4b512...))
$ git reflog
ee4b512 (HEAD) HEAD@{0}: checkout: moving from master to ee4b512
cf8ac66 (master) HEAD@{1}: commit: third commit
ee4b512 (HEAD) HEAD@{2}: checkout: moving from 05053bffae7056ae9f6206b2f5c28b6df9bde6d9 to master
05053bf HEAD@{3}: checkout: moving from master to 05053bf
ee4b512 (HEAD) HEAD@{4}: commit: second commit
05053bf HEAD@{5}: commit (initial): first commit
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text ((ee4b512...))
$ git checkout cf8ac66
Previous HEAD position was ee4b512 second commit
HEAD is now at cf8ac66 third commit
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text ((cf8ac66...))
$ git log
commit cf8ac66af048c28afda45d40c6206e9ca7caae2d (HEAD, master)
Author: steeze1213 <steeze1213@gmail.com>
Date: Mon Feb 9 11:56:49 2026 +0900
third commit
commit ee4b512aaeb947da01fb1add86ab52b2340a45ac
Author: steeze1213 <steeze1213@gmail.com>
Date: Mon Feb 9 11:34:00 2026 +0900
second commit
commit 05053bffae7056ae9f6206b2f5c28b6df9bde6d9
Author: steeze1213 <steeze1213@gmail.com>
Date: Mon Feb 9 11:17:18 2026 +0900
first commit
302@DESKTOP-TF8J569 MINGW64 /c/git-practice-text ((cf8ac66...))
실수에 대응하기
워킹 디렉터리 변경 사항을 실수로 스테이지 영역으로 옮긴 경우
실수로 git add 명령을 수행 해버린 경우, git reset 명령어를 입력하면 스테이징 영역에 올라가 있던 파일을 초기화하여 워킹 디렉토리로 되돌릴 수 있음
$ git reset # 스테이징 영역에 있는 것들 전부 제거
$ git reset <파일 경로> # 스테이징 영역에 있는 것 중 특정 파일 제거

# 321abcd 커밋을 없애거나 되돌리는 게 아닌, 해당 커밋에서 기록된 수정 사항을 되돌리는 것입니다
$ git revert 321abcd


실수에 대응하기
1. 실수로 git add 했을 때
->그냥 git reset 하면 됨
2. 실수로 git commit 했을 때
-> git reset --옵션 돌아갈 커밋해시
->옵션은 강도에 따라 soft, mixed, hard가 있음, hard를 해야 원상복구임
3. 실수로 git commit 했는데, 되돌림과 동시에 실수를 기록하고 싶을 때
->git revert 실수한 커밋 해시

$ git branch # 현재 브랜치 목록을 볼 수 있는 깃 명령어
$ git branch <브랜치이름> # 새로운 브랜치를 생성하는 깃 명령어
$ git checkout <브랜치이름> # 작업 중인 브랜치를 변경하는 깃 명령어
$ git merge <브랜치이름> # 현재 브랜치에 다른 브랜치의 내용을 병합하는 깃 명령어



깃(Git):
컴퓨터에 설치하는 프로그램
문서의 버전관리를 하거나, 여러 버전의 문서를 합치는 등의 협업 관련 기능을 제공하는 프로그램
깃허브(GitHub):
깃 기능을 제공하는 웹 서비스
웹을 통해 깃 이력을 관리하면, 공개 및 협업이 수월해진다.




git push -u origin master
-> 최초 한번 푸시할 때
git push
-> 이미 연결이 되어 있는 로컬 저장소와 원격저장소 간 푸시할 때

git status
git add .
git commit -m "변경 내용"
git push
실습과제2
메모장 뼈대 만들기

'로보테크AI' 카테고리의 다른 글
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/02/11 (0) | 2026.02.11 |
|---|---|
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/02/10[C++] (0) | 2026.02.10 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/02/05 (0) | 2026.02.05 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/02/04 (0) | 2026.02.04 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/02/03 (0) | 2026.02.03 |