Git 기본 명령어

hyHA·2023년 12월 26일
0

Git 기본 명령어

git init

git init
  • Git 저장소 초기화 명령어
  • 새로운 Git 저장소를 생성한다.
  • 해당 명령어를 작성하면, 현재 디렉토리에 .git라는 하위 디렉토리가 생성된다
    • 이 디렉토리는 Git이 프로젝트의 메타데이터와 버전 정보를 저장하는 곳이다.

      git-test라는 폴더에서 .과 ..파일만 있는 상태에서,
      git init을 한 후 ls -al로 확인하면 .git 파일이 생성된걸 확인할 수 있다.

git clone

  • 기존 저장소 복제 명령어
  • 원격 저장소를 로컬에 복제한다.
  • 이 명령어는 GitHub와 같은 원격 저장소에서 프로젝트를 시작할 때 주로 사용된다.
git clone https://github.com/user/repo.git

위 명령어는 원격 저장소('https://github.com/user/repo.git')로부터 프로젝트를 복제한다.

git add

  • 스테이징 명령어
  • 원하는 파일의 변경사항을 스테이징 영역에 추가하는데 사용된다.
  • 이 단계에서는 아직 변경 사항이 커밋되지 않았지만, 곧 커밋될 준비가 된 상태이다.
git add .

위 명령어는 Git으로 추적하고 있는 모든 변경된 파일을 스테이징 영역에 추가한다

git commit

  • 커밋 생성 명령어
  • 스테이징 영역에 있는 파일들의 변경사항을 확정하고, 이를 저장소에 기록하는 작업을 수행한다. 각 커밋에는 고유한 ID가 부여되며, 이를 통해 특정 변경사항을 추적하거나 이전 상태로 되돌릴 수 있다.
git commit -m "Commit message"

git push

  • 로컬을 원격으로 보낸다
  • 원격 저장소에 변경사항 전송 명령어
  • 로컬 저장소의 변경사항을 원격 저장소에 전송한다. 이는 협업을 위해 다른 사용자와 작업 결과를 공유하거나, 원격 저장소를 백업 목적으로 사용할 때 유용하다.
git push origin master
  • 위 명령어는 현재의 master 브랜치를 origin이라는 원격 저장소에 업로드한다.
  • origin은 원격 저장소의 기본 별칭이다.

git fetch

  • 원격 저장소의 변경사항 확인 명령어
  • 원격 저장소의 변경사항을 로컬에 가져오지만, 현재의 브랜치에는 자동으로 병합하지 않는다.
  • 이 명령어를 사용하면 원격 저장소의 최신 변경사항을 로컬에서 확인할 수 있지만, 해당 변경사항이 로컬의 현재 브랜치에 어떤 영향을 미칠지 직접 확인하고 병합할 수 있다.
git fetch origin master

위 명령어는 origin 원격 저장소의 master 브랜치의 최신 변경사항을 가져온다. 하지만 이 변경사항은 현재 브랜치에 자동으로 병합되지 않는다.

git merge

  • 브랜치 병합 명령어
  • git merge 명령어를 사용하면 현재 브랜치에 다른 브랜치의 변경사항을 병합할 수 있다. git fetch를 통해 가져온 원격 저장소의 변경사항을 현재 브랜치에 병합하려면 이 명령어를 사용하면 된다.
git merge origin/master

위 명령어는 origin/master 브랜치의 변경사항을 현재 브랜치에 병합한다. 이는 git fetch 명령어로 가져온 원격 저장소의 변경사항을 병합하는 경우에 사용된다.

git pull

  • git pull 명령어는 git fetchgit merge의 조합과 같다.
    • Git은 원격 저장소의 변경사항을 가져오고(git fetch),
    • 그런 다음 가져온 변경사항을 현재의 브랜치에 병합한다(git merge).
  • 원격 저장소의 변경사항 받아오기 명령어
    • origin을 끌어오고 로컬에서 merge
  • 원격 저장소의 최신 변경사항을 로컬 저장소에 받아오는 작업을 수행한다. 다른 사용자가 원격 저장소에 새로운 커밋을 푸시한 경우, 이 명령어를 통해 그 변경사항을 로컬 저장소에 반영할 수 있다.
git pull origin master

위 명령어는 origin 원격 저장소의 master 브랜치에서 최신의 변경사항을 가져와 현재의 브랜치에 병합한다.

git pull 전략 지정하기

간혹 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

git pull 사용상황

동일한 main브랜치에서 작업자 2명이 동시에 개발을 시작했고, 개발자 1이 먼저 작업을 끝낸 뒤 main 브랜치에 merge를 완료한 상황일때, 개발자 2가 해당 작업 내용을 작업 브랜치(로컬 브랜치)에 반영하고 싶을 때 git pull을 사용하면 된다.

git checkout <작업 중인 브랜치>
git pull origin main

이후 작업을 완료했다면 main브랜치에 머지한다

git checkout main
git merge <작업 중인 브랜치>
git push origin main
profile
룰루랄라

0개의 댓글