[커밋]
- git commit: commit
- git commit --amend: 커밋 수정
- git log: commit로그확인(제일 위에 나타나는것이 가장 최근에 커밋한 것)
- git revert [커밋명]: 특정 커밋 삭제(되돌리기)
[브랜치]
- git branch: 브랜치 확인(현재 브랜치에는 *표시 있음)
- git branch [브랜치명]: 브랜치 생성
- ex2) git branch -f main HEAD~3: main브랜치를 HEAD브랜치에서 3칸 전으로 이동(상대참조~)
- git checkout [브랜치명]: 브랜치 선택
- ex1) git checkout main^: 메인 위에있는 부모로 Head분리(용어>이동하기>상대참조^)
- ex2) git checkout HEAD~4: HEAD를 커밋 4개 전으로 이동(용어>이동하기>상대참조~)
- git merge [브랜치명]: 현재 브랜치쪽으로 다른 브랜치 합치기
- git rebase [고정브랜치명][옮길브랜치명]: 옮길브랜치를 고정브랜치 밑으로 옮기기(순서정렬)
- git rebase -i HEAD~4: HEAD에서 네번째 위의 커밋 밑에있는 커밋들을 수정하여 복사(용어>이동하기>인터렉티브리베이스)
[용어]
- HEAD
- 현재 체크아웃된 커밋(현재 작업중인 커밋), 항상 가장 최근 커밋을 나타냄
- 현재 브랜치에 속해있음
- git checkout [커밋명]: 커밋에서 Head분리
- 되돌리기
- git reset [브랜치명]
- 예전의 커밋을 가리키도록 이동시킴(커밋하지 않은것처럼 브랜치 옮김)
- 히스토리를 고치는 것이기 때문에 다른사람이 작업하는 리모트브랜치에서는 쓸 수 없음
- ex) git reset HEAD^: HEAD 위의 상태로 되돌림
- git revert [브랜치명]
- 되돌린 내용을 다른 사람과 공유하기 위해 사용
- 되돌리려고한 커밋아래 새로운 커밋이 생기는 구조
- ex) git revert HEAD: HEAD밑에 새로운 커밋 만들기
- git reset [브랜치명]
- 이동하기
- 상대참조: 주로 브랜치를 특정 위치로 이동하고자 할때 사용
- Git에서 이리저리 이동할때 해시값이 필요
- 원래 해시값은 매우 길어 고유값임을 보여줄 수 있을 만큼만 명시하면 됨
- ^: 한번에 한 커밋 위로 움직임
- ex) git checkout main^: main 위에있는 부모로 Head분리
- 분리한 Head를 가지고도 checkout Head^ 가능
- ~<num>: 한번에 여러 커밋 위로
- ex1) git checkout HEAD~4: HEAD를 커밋 4개 전으로 이동
- ex2) git branch -f main HEAD~3: main브랜치를 HEAD브랜치에서 3칸 전으로 이동
- cherry-pick: 작업을 적재적소에 배치하기(복사 붙여넣기의 개념)
- git cherry-pick <Commit1> <Commit2>....: 현재 브랜치 밑으로 Commit1과 Commit2를 복사 붙여넣기
- 인터렉티브 리베이스: 작업하던 커밋을 모를때 파일 내용 확인하여 변경 추가 등을 수행할 수 있게함
- git rebase -i HEAD~4: HEAD에서 네번째 위의 커밋 밑에있는 커밋들을 수정하여 복사
- 수정방법에는 pick, edit, omit, squash 등이 있다.
- 상대참조: 주로 브랜치를 특정 위치로 이동하고자 할때 사용
- 태그
- git tag [태그이름] [커밋명]: 커밋에 태그 달기
- git describe <ref>: tag에서 현재 얼마나 떨어져 있는가를 나타내 줌
- <ref>: 커밋을 의미하는 어떤 것이건 상관 없음
- 반환값: <tag>_<nomCommits>_g<hash>
- <tag>: 태그명
- <numCommits>: 태그가 몇 커밋 떨어져 있는지 나타냄
- <hash>: 커밋의 해시
[옵션]
- -f: 강제실행
- -i: 인터렉티브 리베이스(복사될 커밋들을 보여주는 vim띄우고 커밋 구분을 위한 해시들과 메세지 보여줌)
- --amend: 커밋 수정
'Language > Git' 카테고리의 다른 글
port 22: Connection timed out (0) | 2024.04.08 |
---|---|
freeze and install (0) | 2024.04.07 |
원격 저장소와 로컬저장소 연결 (1) | 2024.04.07 |