TIL 2주차 - 2. Git

lim1313·2021년 7월 29일
0

부트캠프 TIL

목록 보기
6/49

Git 버전 관리

git

Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된 ‘분산형 버전 관리 시스템이다.

하나 하나 스냅샷을 만들어 주는 작업을 commit이라고 한다.

github

Github은 Git Repository를 관리할 수 있는 클라우드 기반 서비스

Git으로 버전을 관리하는 폴더에 대해서 Github을 통해 여러 사람들이 공유하고 접근할 수 있다.


Github workflow 용어 설명

  • Fork : Remote에 있는 다른 Repository에서 Fork를 해서 Remote에 있는 내 Repository에 가지고 온다.

  • clone : git clone 명령어 뒤에 Repository 주소를 입력하면 해당 Repository를 내 컴퓨터(Local Repository)로 가져와서 작업할 수 있다.

git clone <레파지토리 주소>

git clone https://github.com/~~~/git-workflow.git
  • git status : 내 로컬의 staging area, untracked files 목록을 확인할 수 있다.

  • git restore : 변경사항을 폐기(discard changes) 하는 명령어, commit되지 않은 Local Repository의 변경 사항을 폐기

git restore <파일명>

git restore mypage.js
  • git add : 파일을 commit 할 수 있는 상태로 만들어 준다. git의 트래킹이 되고 있지 않은 파일들에서 git의 관리 하에 있는 staging area 로 파일들을 추가하는 명령어

git add <파일이름>
git add . //staging area의 모든 파일을 추가

  • git commit : 변경 사항을 저장

git commit -m "커밋 메시지"
: -m 옵션을 통해 코멘트 작성, Commit 기록은 날짜, commit한 사람, commit 메시지가 모두 기록된다.

  • git reset : 아직 Remote Repository에 업로드 되지 않고 Local Repository에만 commit 해 놓은 기록이라면 reset 명령어를 통해서 commit 을 취소가능.

git reset HEAD^

  • git push : 현재 Local Repository에 저장되어 있는 commit 기록들을 내 Remote Repository 에 업로드.
    git push origin main, git push pair dev 등 git push 뒤에 따라오는 명령어는 상황에 따라 변경 가능.

git push < origin > < branch >

git push origin master
  • git log : 현재까지 commit된 내역들을 확인(종료 : q 입력)
  • Pull Request : 내가 Remote Repository에 Push 해 놓은 변경 사항에 대해서 함께 작업하는 다른 사람들에게 알리는 것

함께 작업하기

  • git init : 내 컴퓨터에서 내가 직접 만든 디렉토리를 Git의 관리 하에 들어가게 만들어 주는 명령어.
    디렉토리를 git repository로 변환하거나 새로운 repository를 초기화하는데 사용.

  • git remote add origin : Local Repository를 Remote Repository와 연결하는 작업

git remote add origin <repository 주소>

  • git remote add 레포지토리이름 : Remote Repository를 연결함으로서 Github Repository를 함께 공유

git remote add 레포지토리이름 <페어의 repository 주소>

  • git remote remove pair : remote 삭제

  • git remote -v : 현재 local repository와 연결된 모든 remote respository 목록을 확인.

  • git pull : 페어의 remote resposityr에 있는 작업 내용을 받아옴. 받아오는 내용은 자동으로 병합(merge) 된다.

git pull < shortname > < branch >

es) git pull pair master

병합 충돌

merge conflict : 병합하는 과정에서 충돌 발생

  • git status : 어떤 파일이 충돌되었는지 확인

  • 충돌이 발생한 파일을 열어 보면 어떤 부분에서 충돌이 발생한 것인지 확인할 수 있다. 그리고 충돌이 일어난 부분은 하나 하나 직접 확인 후 수정이 필요.

  • Accept Current Change를 클릭해서 내가 수정한 내용으로 파일에 반영가능.

  • Accept Incoming Change를 클릭해서 Remote Repository의 내용으로 파일에 반영가능.

  • Accept Both Changes는 변경 사항 모두를 반영가능.

  1. 충돌한 파일 수정을 완료했다면 Remote Repository에 업로드 하기 위해서 staging area에 파일을 추가
  2. Merge commit은 자동으로 Commit 메시지가 생성됨.
  3. 그리고 Remote Repository에 Push 한다면 다음 화면과 같이 Merge branch ‘master’ of 라는 commit 메시지가 기록된다.


Git의 영역 및 상태

  • Unmodified : 기존에 Commit했던 파일을 수정하지 않은 상태

  • Modified : 기존에 Commit했던 파일을 수정한 상태

  • Staged : commit이 가능한 상태. 수정한 파일을 commit 하기 위해서는 staged area에 add 하는 작업이 필요

profile
start coding

0개의 댓글