Git 5

GIT - reset & revert

reset을 더 잘 이해하기 위해서 checkout과 비교를 해보면 좋다. checkout은 HEAD를 직접적으로 가리키도록 바꾼다. reset은 HEAD가 브랜치를 가리키고 있을 때 그 브랜치가 가리키고 있는 버전을 바꾼다. 만약 HEAD가 아무 브랜치를 가리키고 있지 않을 때는 checkout처럼 HEAD를 바꾼다. 그림에서 보듯이 reset과 checkout은 엄연히 차이점이 존재하지만 두 명령어 모두 working directory는 B 인 상태로 같다는 공통점이 있다. reset은 master가 가리키고 있는 버전을 바꿨고 checkout은 HEAD만 바꿨다. reset명령어를 실행하면 C를 더이상 아무도 바라보고 있지 않기 때문에 log로 확인해보면 눈에 보이지 않는다. delete와 같은 효..

Git 2021.09.23

GIT - cherry-pick & rebase

cherry-pick은 특정한 커밋 하나만 픽업해서 다른 커밋 뒤에 붙일 수 있는 기능이다. rebase는 두 개의 다른 브랜치가 병렬적으로 표시된 것을 일렬로 보이게 하여 보는 사람으로 하여금 이 작업이 어떻게 진행되었는지를 훨씬 더 직관적으로 표현할 수 있는 기능이다. base가 공통의 조상이므로 rebase는 해당 브랜치의 조상을 바꾼다는 의미이다. 커밋들의 순서와 관계를 마음대로 조정하게 해준다. t2에서 작업한 내용을 m2에도 적용시키고 싶을 수도 있다. 그걸 가능하게 하는게 cherry-pick 이다. 위와 같이 git cherry-pick 뒤에 픽업하고 싶은 커밋의 아이디를 적으면 t2에서 작업했던 내용인 t2 파일의 추가라는 내용이 m2에 적용된 걸 확인할 수 있다. 그리고 로그를 다시 확..

Git 2021.09.22

GIT - branch & conflict

git branch - 브랜치의 목록을 보여주는 명령어 git branch [name] - name이라는 브랜치를 만드는 명령어 git branch 명령어의 목록에 master라는 것에 '*' 표시가 있는 것은 현재 master의 브랜치라는 의미이고 git log에서도 현재 HEAD -> master 인데, 이것도 현재 master 브랜치라는 의미이다. 파일을 수정한 뒤 commit을 다시 해보면 로그가 아래와 같이 변한다. work3에서 새로 생성한 브랜치들은 그대로 있고 새롭게 커밋된 로그를 보면 master로만 되어있다. git checkout [name] 명령어를 입력하면 해당 버전의 브랜치로 이동한다. HEAD -> apple 로 변해있는 것을 확인할 수 있다. 그리고 파일의 내용도 work3 ..

Git 2021.09.21

GIT - backup

http를 이용해서 원격 레포지토리로 연결할거다. git remote add 가 로컬 레포지토리를 원격 레포지토리로 연결시키는 명령어다. origin 부분에 별칭을 넣는데 보통 origin 이라고 많이 넣는다고 한다. git remote 는 원격 저장소의 리스트를 보여주고 -v 옵션은 상세하게 보여준다. 작업한 내용을 원격 저장소에 업로드를 해야한다. git push 명령어를 이용한다. 그리고 지역 저장소는 여러 개의 원격저장소와 연결될 수 있는데, 그 중에 어떤 원격 저장소와 기본적으로 연결시킬지 세팅도 해주어야한다. 아래와 같이 입력하면 'git push' 로만 입력해도 origin에 master라고 하는 브랜치로 업로드가 된다. push할 때 간헐적으로 계정 권한에 관련된 에러가 났었는데, 자격 증..

Git 2021.09.20

GIT - Version Control

git init - git에게 버전관리를 시키겠다는 명령어 ->실행 시키면 .git 폴더가 생성이 된다. 버전으로 만들어지기 전 단계(수정한 파일들이 있는 곳) - Working tree 버전으로 만들기 위해 존재하는 공간 - Staging Area 버전이 저장되어 있는 곳 - Repository(.git 폴더) git status - 깃의 상태를 보여주는 명령어 Untracked files는 버전 관리가 되고 있지 않은 파일을 보여준다. 저걸 staging Area로 올려야하는데 git add를 사용하면 된다. git commit - staging area에 있는 파일을 repository로 옮기는 명령어(버전 생성) git log - 버전에 대한 설명이 있는 명령어 파일 수정 후 상태를 확인해보면 s..

Git 2021.09.19