본 포스팅은 제대로 파는 Git & GitHub - by 얄코님의 인프런영상을 학습하고 정리한 내용입니다.
Git에서의 HEAD란 ?
현재 속한 브랜치의 가장 최신 커밋(해당 브랜치 가지의 맨 끝 단위)
switch로 branch 이동하기(git switch (브랜치 명))
HEAD 이동하기
git checkout HEAD^ // git checkout HEAD~
시간 순은 유지하되(커밋된 정보는 유지) 파일의 상태(HEAD)만 과거로 돌리는 것
- ^ 또는 ~ : 갯수만큼 이전으로 이동(한 단계만 뒤로 가고 싶으면 ^나 ~를 한 개만)
- git checkout HEAD~~ / git checkout HEAD^5 / git checkout 커밋해시
(이동) 한 단계 되돌리기(ctrl + z)
git checkout -
1. HEAD 실습
현재 alpha-branch에서 HEAD는 alpha 2nd commit이다.
한 단계 뒤로 가고 싶다면
git checkout HEAD~ / git checkout HEAD^ / git checkout ‘alpha 1st commit의 해시코드’
HEAD가 한 단계 전으로 돌아간 것을 볼 수 있다. 다시 뒤로 되돌리고 싶다면
git checkout –
1. *이전으로 checkout된 상태에서 sourceTree로 HEAD상태 확인*
익명의 브랜치에 위치함을 알 수 있음(현재 브랜치가 브랜치 이름이 아닌 코드로 되어있는 경우)
익명의 브랜치에서 새로운 브랜치를 만들고 커밋할 수 있다.
현재 beta-branch에서 head는 beta 2nd commit에 있다.
git checkout HEAD^1 // 한 단계 뒤로가기
이 위치(현재 익명의 브랜치)에서 새로운 브랜치 생성과 동시에 그 브랜치로 이동하기
git swtich -c '새로운 브랜치 명'
파일을 변경하고 새로운 변경사항을 커밋하기
git commit -am "gamma 1st commit"
2. HEAD를 사용해 RESET 하기
git reset HEAD(원하는 단계)
$git reset --hard HEAD^^ |
$git reset HEAD^^ ($git reset –mixed HEAD^^와 동일) |
2단계 뒤로 가고, 뒤로 가면서 커밋 내용까지 삭제되었다. |
2단계 뒤로 갔지만, 파일에는 3rd, 4th에서 했었던 것들이 삭제되지 않았다. (현재 Working directory에 위치, git add . 를 하면 Staging area로 이동) |
2022.03.31 - [Gi&Github] - 5. Git의 3가지 분류 공간과 삭제와 이동 / RESET
2. fetch와 pull
fetch | pull |
원격 저장소의 최신 커밋을 로컬로 가져오기만 함 (pull하기 전 내역만 보고 싶을 때 사용) |
원격 저장소의 최신 커밋을 로컬로 가져와 merge 또는 rebase (fetch의 과정을 포함) |
1. fetch한 내역 보기 ( 적용 전: pull(다운로드) 전 )
1. 원격에서 커밋 추가 하기
원격의 main 브랜치에 커밋 추가 (파일에 fetch : this 추가하고 커밋메시지: Add fetch : this)
git checkout origin/main
pull 한 것이 아니기 떄문에 mian 브랜치로 이동하게 되면 fetch : this가 보이지 않는다.
git pull을 하게 되면 원격에서 한 커밋사항이 pull이 되면서 로컬에서도 그 commit이 적용된다.
2. 원격에서 새 브랜치를 생성하고 커밋 추가 하기
원격에서 새로운 브랜치 생성(new-branch) 후 커밋 추가 (파일에 new : branch 추가하고 커밋메시지: Add new branch)
git checkout origin/(브랜치 명)
pull 한 것이 아니기 떄문에 mian 브랜치로 이동하게 되면 new : branch 가 보이지 않는다.
git switch -t origin/(브랜치 명) 을 하게 되면 원격에서 생긴 브랜치와 변경된 사항이 한 번에 로컬에도 적용된다.
'Github' 카테고리의 다른 글
[git 협업 시작] 다른 사람이 만든 브랜치에 협업하기 (0) | 2022.05.29 |
---|---|
5. Git의 3가지 분류 공간과 삭제와 이동 / RESET (0) | 2022.03.31 |
4. GitHub 사용하기: push와 pull / 원격저장소와 로컬저장소 (0) | 2022.03.30 |
3. 여러 branch를 생성하고 사용해보기(merge와 rebase) (0) | 2022.03.29 |
2. 프로젝트 변경사항(add, commit, reset, revert) (0) | 2022.03.28 |