[Git] Git 개념 및 명령어

최진민·2021년 7월 24일
0
post-thumbnail

Git 개념 및 명령어 정리

  • 개인 개발 및 공동 개발에서 효율적인 코드 형상 관리를 꾀할 수 있다.

Git 영역

  • 1) Working Directory (Local) : 개인 코드
  • 2) Staging 영역 : git add를 통해 수정된 코드를 올리는 영역
  • 3) Repository : git commit을 통해서 최종 수정본 제출

✨Git 작업 플로우

0) git 설치 (linux)

  • $ sudo apt install git -all

1) 저장소(Repository) 생성

  • 원하는 폴더 진입 ($ cd)
  • git init
  • 또는 기존의 GitHub에 있는 저장소를 로컬 저장소로 복제
    • git clone [git 저장소 URL]

2) 코드 생성 (Working Directory)

  • ex) $ echo "Hello, Git!" > README.md

  • 확인

    $ cat README.md
    Hello, Git!

3) Staging 영역에 추가

  • $ git add . : 현재 디렉토리에 있는 업데이트 된 파일
  • $ git add -A : 수정된 파일 전부
  • $ git status : 현재 add 내역 확인

4) Repository에 Commit

  • $ git commit -m [feat: README.md update]
    • -m은 메시지 약자, 뒤에 []안에 메시지 생성

5) 원격 저장소에 push, 업데이트 된 내용 pull

  • Local -> Remote : push
  • 그 전에! 연결을 해야한다.
  • 원경 저장소 (github) 연결
    • $ git remote add origin [원격 저장소 github url]
      • origin은 remote directory의 이름, 다른 이름으로 설정해도 무방
  • push
    • $ git push origin master
      • origin이라는 원격 저장소의 master 브랜치에 push
      • 최근 깃헙의 메인 브랜치 명은 master -> main으로 바뀌었다.
  • pull
    • 원격 저장소에 업데이트한 파일을 로컬 저장소에 가져올 때
    • $ git pull

그 외 알아두면 좋은 명령어

6) 커밋 이력 확인

  • $ git log
  • $ git log --oneline : 한 줄로 요약

7) 파일 변경시 (Working Directory -> Staging) 내역 확인 및 취소

  • 파일 내용 변경

    • $ echo "update test" >> README.md
  • 내용 변경 확인

    $ cat README.md
    Hello, Git!
    update test
    • $ git diff
  • staging 취소 (=unstaging)

    • $ git reset
    • $ git reset --hard : working directory 영역도 되돌림, 변경 내역 모두 소멸

8) commit

  • 여려개 commit을 하나의 commit으로 정리
    • $ git rebase -i
    • $ git commit --amend : 직전, 금번 커밋 정리

🧨Git Branch

  • 한 프로젝트에서 에러가 발생한 모듈과 다른 모듈을 동시 개발 할 때, 서로 독립적이어야 된다.
  • 이를 나눈 것이 branch

9) branch 확인

  • $ git branch : 현재 설정된 브랜치 앞 *이 붙는다.

10) branch 생성 및 변경

  • $ git branch newBranch : newBranch라는 이름을 갖는 브랜치 생성
  • $ git checkout newBranch
    • 기존 브랜치(master)에서 newBranch로 전환
    • 바뀐 브랜치에서 commit하면 master 브랜치에서는 업데이트가 되지 않고 newBranch에서만 업데이트 가능
  • $ git checkout -b newBranch2 : newBranch2라는 브랜치를 생성하면서 동시에 브랜치 전환
  • $ git push origin newBranch2 : origin 원격 저장소에 newBranch2 push

💖Pull Request + Merge

  • commit != 최종 코드 수정
  • 개인이 commitpush했을 때, 관리자가 리뷰 후 수정 요청

1) Pull Request

  • github의 원격 저장소에서 commit 내용에 대해 pull request를 하면 관리자에게 전송

2) Review, Comment

  • 리뷰 후 코멘트(comment 버튼) 작성

3) Comment 대응

  • local에서 코드 수정 후 원래와 같은 방식으로 commit

    $ git add .
    $ git commit -m [message]
    $ git push

4) Review 및 Merge

  • 리뷰 후 최종 결과 만족시 병합(merge) -> 깃헙에서 pull request merge
profile
열심히 해보자9999

0개의 댓글