카테고리
게시일
Mar 6, 2025
git status
- untracked : 파일 처음 만들면 각 파일 이 상태
- unstaged : 파일 내용이 변경되었는데, 아직 커밋을 할 건지 확정은 안한상태
- 인덱스로 올라감(스냅숏 생성(?))
- staged : 파일이 변경 안되었거나, 변경 이후 커밋할 것으로 확정한거
- commited : 스냅숏을 새로운 버전으로 올림
- -s 하면 짧게 보기 가능
- ?? 파일은 untracked
- M은 modified
- A는 추가된 파일 (or 무수정(?))
- 초록색은 staged, 빨간색은 unstaged
git log
커밋들의 log확인 가능
git log —oneline
커밋한거 한줄로 보기
git log —oneline —graph
현재 브랜치 기준 로그를 그래프로 보여줌
git commit
commit하는거고, commit 컨벤션 유의
각 commit에는 hash가 있어 구분이 가능하다.
git commit -m
짧게 설명을 추가
git reset
커밋 취소 가능
- —soft : 이전 staged상태로
- —mixed : 이전 unstaged 상태로
- —hard : 변경내용 자체를 삭제(워킹디렉토리를 이전 버전으로
HEAD~1
- HEAD의 바로 이전 commit상태로 변경
branch란?
브랜치는 “기능별로 독립된 작업흐름”
git branch
현재 브랜치 확인

git branch -M <원래명> <바꿀명>
브랜치의 이름을 변경함
git checkout <브랜치명>
브랜치 전환
WD도 알아서 뒤바뀜 & log로 확인할 때도 해당 브랜치 기준으로 뒤바뀜!!!
-b 하면 브랜치를 현재 브랜치에서 분기해서 새로 만들면서 이동한다.
MERGE
FAST-FORWARD
기준브랜치(main)에 변경점 없을 때 일어남
그냥 최신 커밋을 가르키도록 수정됨
3-Way merge
기준브랜치(main)에 변경점 생기면, 그 두 변경점을 모두 반영하는 MERGE
git merge
merge할 때(특히 3-way merge) VIM 같은 텍스트 에디터 뜨면서, merge가 꼭 필요한지 쓰라는거 나오는데, 그냥 :x로 삭제하면서 나가면 됨
원격 저장소(Remote)
git remote add origin URL
원격저장소 추가함
github의 main branch
github에서는 기준 브랜치로 master대신 main 브랜치를 메인 브랜치면으로 사용하는것이 대세이다.
Github & Pull Request
보통 새로운 브랜치는 feat-1이런식으로 하는게 맞음
clone Vs pull
clone은 저장소를 통채로 복사해서 가져온다.
pull은 기존 저장소에서 변경점만 업데이트한다.
git clone https://github.com/semteul/linux-analysis-notes.git
git 확장자 붙여주는거 잊지 말기
Downstream - origin - Upstream
상대적으로 원본을 upstream, clone하거나, fork한 것을 downstream이라고 한다.