평상시에 Git과 Github에 대해서 배워야지 하다가
드디어 오늘 제대로 정리해보려고 한다.
먼저 내가 공부한 책은 아래와 같다.
노션으로도 제공하고 있고 알라딘에서 ebook으로 무료 다운로드가 가능하다. 무엇보다 유튜브로 강의도 제공하고 있다.
<모든 그림의 출처는 위 책에서 가져왔습니다.>
비행기로 비유된 4개의 중요한 키워드
이것만 알아도 전체적인 흐름을 잡는데 매우 도움이 되었다.
제주도 = 로컬저장소 = 내 컴퓨터
인천공항 = 원격저장소 = github
Git과 Github는 다르다.
처음에 같은건줄 알았는데
Git은 분산 버전 관리 툴로
개인 컴퓨터에 설치되어져서 로컬 저장소와 원격 저장소 사이에서 버전을 관리해준다.
이 Git을 관리해주는 웹 호스팅 서비스
= Git을 클라우드 환경에서 사용할 수 있게 제공하는 공간
= Github
우리가 들어가서 보는 그 사이트이다.
sudo apt-get update
sudo apt-get install git
윈도우
윈도우 https://git-scm.com/ 에 접속해서 다운받기
처음에 사용자 정보를 설정해야 한다.
git config --global user.name "byeolhaha"
git config --global user.email byeolhaha@example.com
쌍따옴표도 같이 들어간다.
user.name "본인githubId"
user.email 본인github이메일
git clon repoURL .
초기 원격 저장소의 코드를 컴퓨터에 가져오고 내 로컬 저장소에서 버전관리를 하기 위한 작업
끝에 .을 찍는 이유는 현재 폴더에 새로운 폴더를 생성하지 않고 바로 원격저장소에 있는 데이터를 가져오기 위한
원격 저장소에 업데이트 된 데이터를 가져오는 경우
즉 현재 내 로컬저장소와 원격저장소의 데이터를 병합하는 과정이다.
git pull origin main
git init은 내 폴더가 버전관리가 될 수 있도록 하는 명령어인데
git init을 하면 내 로컬 저장소에 .git이라는 파일 폴더가 생긴다.
이 폴더에 버전관리를 해주는 것이다.
근데 git init과 git clone을 헷갈려할 수도 있고
git pull과 git clone을 헷갈려할 수도 있다.
차이점을 정리해본다.
git clone은 원격 저장소에 있는 파일들을 내 로컬 저장소에 모두 가져올 때 처음 초기화 과정에 필요할 때 사용하는 명령어이다.
즉 git clone
= git init + git remote add repoUrl + git pull
과 같은 의미이다.
다시 정리하면 git clone은 .git폴더를 만드는 동시에 원격저장소와 로컬저장소가 연결되어 원격저장소에 있는 파일을 가져오는 것이다.
따라서 git clone을 한 뒤에는 초기화 작업이 필요없어서 git pull 통해서만 원격 저장소에 있는 파일을 가져오면 된다.
마찬가지로 git init+git remote add reoUrl을 한 뒤에도 git pull을 통해서만 데이터를 가지고 오면 된다.
반대로 원격저장소와 연결되지 않은 내 로컬저장소의 파일을 올리고 싶을 때는 git init+ git add . + git commot -m "message"+ git remote add reoUrl + git push -u origin main
원래 git push 원격저장소별칭 브랜치명
으로 표현되어야 하는데
git push -u origin main
을 최초 한번만 써주면 -u
옵션으로 인해 그 이후로 main이라는 브랜치가 원격저장소 origin을 추적한다.
따라서
git push
와 같이 원격저장소별칭과 브랜치명이 생략 가능
내가 작업을 하던 도중 다른 팀원을 작업을 해서 이미 원격저장소와 merge한 경우가 있을 수 있기 때문에 git push하기 전에 git pull하는 것이 좋다.
만약에 그러지 않는 경우 충돌이 발생하는데 그걸 무시하고 강제로 push하는 경우 모든 파일이 날아갈 수도 있으니 주의!