git init
.git
라는 하위 디렉토리가 생성된다git init
을 한 후 ls -al
로 확인하면 .git 파일이 생성된걸 확인할 수 있다. git clone https://github.com/user/repo.git
위 명령어는 원격 저장소('https://github.com/user/repo.git')로부터 프로젝트를 복제한다.
git add .
위 명령어는 Git으로 추적하고 있는 모든 변경된 파일을 스테이징 영역에 추가한다
git commit -m "Commit message"
git push origin master
- 위 명령어는 현재의
master
브랜치를origin
이라는 원격 저장소에 업로드한다.origin
은 원격 저장소의 기본 별칭이다.
git fetch origin master
위 명령어는
origin
원격 저장소의master
브랜치의 최신 변경사항을 가져온다. 하지만 이 변경사항은 현재 브랜치에 자동으로 병합되지 않는다.
git merge
명령어를 사용하면 현재 브랜치에 다른 브랜치의 변경사항을 병합할 수 있다. git fetch
를 통해 가져온 원격 저장소의 변경사항을 현재 브랜치에 병합하려면 이 명령어를 사용하면 된다.git merge origin/master
위 명령어는
origin/master
브랜치의 변경사항을 현재 브랜치에 병합한다. 이는git fetch
명령어로 가져온 원격 저장소의 변경사항을 병합하는 경우에 사용된다.
git pull
명령어는 git fetch
와 git merge
의 조합과 같다.git fetch
), git merge
).git pull origin master
위 명령어는
origin
원격 저장소의master
브랜치에서 최신의 변경사항을 가져와 현재의 브랜치에 병합한다.
간혹 git pull을 했을 때 아래 문구가 뜨면서 pull이 되지 않을 때가 있다.
병합하는 전략을 지정하라는 뜻인데, 첫번째로 하면된다.
git config pull.rebase false # merge
git config pull.rebase true # rebase
git config pull.ff only # fast-forward only
첫번째 명령어는 git pull 시에 rebase를 사용하지 않도록 설정한다. 즉, 기본적으로 git pull을 실행할 때 병합(merge)을 사용하도록 설정하는 것이다.
아래처럼 전역으로 설정된 git사용자 환경에서 해당 설정이 적용되도록 설정하려면 --global 옵션을 주면 된다.
git config --global pull.rebase false
동일한 main브랜치에서 작업자 2명이 동시에 개발을 시작했고, 개발자 1이 먼저 작업을 끝낸 뒤 main 브랜치에 merge를 완료한 상황일때, 개발자 2가 해당 작업 내용을 작업 브랜치(로컬 브랜치)에 반영하고 싶을 때 git pull을 사용하면 된다.
git checkout <작업 중인 브랜치>
git pull origin main
이후 작업을 완료했다면 main브랜치에 머지한다
git checkout main
git merge <작업 중인 브랜치>
git push origin main