Git 명령어 정리

Git이란

- 분산 버전 관리 시스템으로서, 소스 코드의 변경사항을 추적하는 데 사용

- 로컬 시스템과 원격 시스템을 두어, 로컬에서 작업 후 원격공간 동기화

- 주요 명령어에는 add, commit, push, pull, merge, branch, checkout 등

- 브랜치(branch) 기능을 통해 여러 개발자가 동시에 개발하면서도 충돌 없이 작업

 

Staging Area

- git add .

- 이 단계에서는 local repository로 파일을 넣기 위한 대상 목록 관리
- stage, 인덱스는 Staging을 가리키는 같은 용어

- 로컬저장소로 넣으면, 그 때부터 이력이 생성

 

로컬 저장소(local repo)

- git commit -m "남길메시지"

- staging area에서 commit을 하고 나면 새로운 버전이 생성

 

Git 명령어

git status

- 현재 작업 디렉토리와 staging area의 상태를 보여주는 명령어

 

git add .

- staging area로 업로드

- git status로 staging 상태확인

 

git commit -m "first commit"

- local repository로 업로드 및 커밋이력 생성

- git commit -m "제목파트" -m"내용파트"

- git log로 커밋이력 확인

- git commit 만 하게 되면 메시지 입력모드로 전환. 첫줄에 title, 두번째 줄부터 contents

 

git commit -am "커밋메시지"

- add와 commit을 동시에

 

git push origin main

- commit 했던 파일 origin으로 psuh

 

git branch

- 최초로 만들어졌던 branch 확인(main)

 

git log

- git commit log 확인

 

Git 프로젝트 생성 및 수정절차

신규 프로젝트 생성시

- 방법1

   - git clone repository 주소

   - 해당 폴더로 이동하여 개발시작

 

- 방법2

   - 로컬 컴퓨터에서부터 이미 개발된 프로젝트가 존재시

     - 로컬 컴퓨터에서 github로 프로젝트 올리는

- git init

     - .git파일(commit 이력, 원격지(github) 주소, branch 정보) 생성

     - .git 폴더가 위치한 곳에서 git config —list를 통해 컨피그 정보 조회

- git remote add origin [repository 주소]

     - origin이란, 깃허브 저장소 주소를 의미(즉, 원격저장소를 의미)

- git remote set-url origin [repository 주소]

     - url변경 후 main에 push하면 main의 commit 이력과 함께 업로드

- git remote remove origin

 

git fetch

  • git fetch
    • origin의 데이터를 로컬로 가져오되 병합은 하지 않는것.
    • local repository까지 커밋이력은 가져오되, staging과 working directory에는 반영 X
    • FETCH_HEAD는 git fetch 명령어를 마지막으로 실행했을 때 원격 저장소에서 가져온 브랜치의 최신 커밋을 가리키는 참조
  • git fetch origin main
    • 현재 checkout 돼 있는 main과 origin main과의 차이가 있을경우 origin 참조데이터 fetch_head라는 곳에 생성
    • 즉, 차이점을 참고하여 일단 merge 후에 파일수정하고 다시 push
  • git pull작업의 단계(fetch와 merge를 포함)
    • git fetch 먼저 수행
    • git merge 수행
    • 만약 merge가 실패되면 fetch만 완료

git stash

  • git stash는 작업 중인 변경사항을 임시로 저장하고 나중에 다시 적용할 수 있게 해주는 명령어
  • git stash list
    • 작업저장목록
  • git stash show 인덱스
    • 복사본 내용 조회
    • git stash show -p 인덱스 : 상세조
  • git stash pop
    • 작업목록에서 제거하면서 저장사항 적용
  • git stash apply
    • 작업목록에서 놔둔채 저장사항 적용
    • git stash apply 0
      • 가장 최근에 저장한 stash의 적용
  • git stash clear
    • 전체 stash 목록 클리어

git tag

  • main 브랜치에서 tag를 붙여 버전을 명시하고, release를 하고자 할때 아래와 같이 tag를 붙인뒤 push
  • release에는 source코드가 압축 파일로 생성
  • 관련명령어
    • git tag 버전명
    • git push origin 버전명
    • add, commit, push와는 별도로 진행

feature branch 작업

  • 실제 현업에선 branch1, branch2, dev, main등 여러 브랜치로 관리
    • 브랜치란 버전과는 다르게 개발의 경로를 의미
    • 일반적으로 production 관련 브랜치는 main, 개발용 브랜치는 dev
    • 나머지는 task별로 기능별로 개별적으로 만들어 사용 → feature브랜치라 칭함
    • 각각의 local feature branch에서 작업 후 origin/feature로 push
    • Pull Request를 통해 dev까지 merge
    • dev에서 main으로 최종 merge
  • 주요 명령어
    • git fetch origin
      • 모든 브랜치 정보 fetch
    • git branch
      • 현재 저장소에 있는 모든 브랜치 목록
    • git branch 특정브랜치명
      • 특정브랜치명으로 새로운 브랜치를 생성하는 명령어
      • 기존에 checkout 되어 있던 브랜치 기준으로 신규 브랜치 생성
    • git checkout -t 브랜치명
      • 현재 브랜치에서 다른 브랜치인 브랜치명으로 전환하는 명령어
    • git checkout -b 브랜치명
      • 새 브랜치를 생성하고 해당브랜치로 전환
  • branch 삭제
    • git branch -D 브랜치명 : 로컬 브랜치 삭제
    • git push origin —delete 브랜치명 : 리모트브랜치도 삭제