[git] git이란?
2021. 10. 13. 22:43
git
Git git은 분산 버전 관리 시스템이다. 이 말만 들으면 무엇을 할 수 있는 시스템인지 이해가 되지 않을 것이다. 쉽게 말하자면 깃은 여러 버전을 백업해두고, 그 백업 기록을 남겨놔 언제든지 참조하고, 되돌아갈 수 있으며 여러 명의 개발자가 동시에 작업을 해줄 수 있도록 도와주는 시스템이다. 로컬에 저장되는 git 데이터를 로컬 저장소인 github와 같은 사이트에 업로드한다면, 그 깃 데이터를 가지고 여러 개발자가 다른 장소에서 작업을 할 수 있으며, 코드뿐만 아니고 작업했던 백업 기록까지 공유할 수 있다. 또한 백업을 하는 것을 커밋이라고 하는데 각 커밋들마다 메시지를 남겨, 이 커밋은 어떤 내용이 수정되었는지 메모를 하여 다른 개발자들이 쉽게 확인할 수 있게 해 준다.
[git] pull vs fetch
2021. 10. 13. 22:13
git
pull vs fetch pull은 원격 저장소에 있는 데이터를 가져오는 동시에 로컬에 있는 기존의 로컬 브랜치와 merge까지 자동으로 해준다. git pull [원격 저장소 이름] [브랜치 이름] fetch는 원격 저장소에 있는 데이터를 가져오기만 하여 merge를 따로 해줘야 한다. fetch를 사용하는 이유는 로컬에 있는 데이터를 그대로 보존하면서 원격 브랜치 데이터의 수정사항을 확인할 수 있다. git fetch [원격 저장소 이름] [브랜치 이름]
[git] merge, rebase 브랜치를 합치는 방법
2021. 10. 13. 22:05
git
merge vs rebase merge와 rebase 모두 브랜치를 합치는 명령어지만 약간의 차이가 있다. merge는 아래 사진과 같이 깃의 커밋들의 로그가 두 브랜치가 합쳐지는 형태로 남는다 rebase는 merge처럼 합쳐지는 형태로 기록이 남지 않고 합쳐질 브랜치가 앞에 붙는 형식으로 선형적으로 남는다. rebase는 로그가 선형적으로 남아 기록이 더 깔끔하게 남을 수 있지만, 없어지는 커밋이 생길 수도 있다. 반면에 merge는 로그가 합쳐지는 두 가지 갈래 형태로 남아 깔끔하진 않을 수 있지만 모든 커밋이 보존된다. merge merge를 할 때 우선 남아야 하는 브랜치로 이동한 후에 merge를 해야 한다. git checkout [남아야할 브랜치 이름] git merge [합칠 브랜치 이름..
[git] branch
2021. 10. 13. 21:45
git
branch 브랜치란? git에서 새로운 커밋이 이어지는 가지를 만드는 기능이다. 브랜치를 새로운 기능을 추가하거나, 버그를 수정하는 등 다양한 상황에 원본 파일을 남겨놓고 새로운 무언가를 할 때 많이 사용한다. 또는 여러 개발자가 동시에 작업할 때도 사용한다. 위의 이미지는 브랜치를 이용하는 예시이다. 마스터 브랜치는 보통 배포를 하는 브랜치이고, 그 외 여러 각 역할을 하는 브랜치를 만들어 각 브랜치에서 작업하여 마스터로 합친다. branch 생성 아래 명령어로 브랜치를 생성할 수 있다. 그러나 생성된 브랜치로 이동은 되지 않고 생성만 된다. git branch [브랜치 명] 특정 branch 이동 위의 명령어로 브랜치를 생성했다면 이제 아래 명령어로 브랜치로 이동을 할 수 있다. git checko..
[git] add, commit
2021. 10. 13. 21:30
git
add git add는 파일을 stage에 올리는 것이다. add는 다양한 명령어로 할 수 있다. 파일 하나만 add하기 git add [파일 이름] 변경사항 있는 파일 모두 add하기 git add . stage한 파일 unstage하기 git reset HEAD [파일명] Commit commit은 stage된 파일들을 저장소에 올리는 것이다. 이 저장소에 저장된 커밋들의 체크섬을 가지고 커밋한 시점으로 코드를 되돌릴 수 있다. 커밋메세지를 지정한 에디터에서 작성 하기 git commit cf) 에디터 지정하기 아래 명령어를 터미널에 입력하면 기본 에디터가 vim으로 변경된다. git config --global core.editor vim 커밋 메세지에 git diff 메세지도 포함하여 에디터에서 ..