Git이란 무엇일까? Git에 대한 내용과 자주 쓰이는 명령어에 대해 정리해보았다.
📢 Git이란?
Git은 버전관리시스템이다. Git을 이용하면 언제든지 저장 시점으로 되돌아갈 수 있다.
📢 Git의 특징과 설치방법
Git의 특징과 장점
- Git은 빠르며, 분산형 저장소를 지원한다.
-> 때문에 여러 명이 동시에 수정하는 환경에 적합하다. - 수천개의 동시 다발적인 branch가 가능하다.
- 속도나 데이터 크기 면에서, 대형 프로젝트에 유용하다.
Git 설치하기
windows는 git-scm.com 에서 다운받고 설치하면 된다. 설치 후에는 user.name
과 user.email
의 설정을 해야한다. 이는 commit시 author과 committer의 메타데이터로 사용되기 때문이다.
git config --global user.name "Name"
git config --global user.email "Eamil"
📢 Git 저장소 만들기
Git 저장소를 만들어보자. git init
은 현재 해당하는 디렉토리에 내가 작업을 진행하겠다! 라고 git에게 알려주는 것과 같다. 이는 .git
이라는 하위 디렉토리를 만들고, 이 디렉토리에는 버전정보들이 전부 저장되어 있다.
git init
: 기존 프로젝트를 git으로 관리하고 싶을 때git init (directory path)
: 새로운 dir을 생성하여 git 저장소를 만들 때ls -al
: 현재 폴더의 파일 목록 확인하기
git으로 파일을 관리하려면 저장소에 파일을 추가(add), 커밋(commit, 여태까지 한 작업을 git db에 기록&저장)해야한다.
📢 Git 파일 관리 3단계
- staged : Local DB에 저장하기 위해 등록해놓은 상태
- commited : 데이터가 로컬 DB에 안전하게 저장된 상태
- Modified : 수정한 파일을 아직 로컬 DB에 저장하지 않은 상태
📢 Git 명령어
git status - 파일 상태 확인
git status -s
를 이용하여 각 파일의 상태를 확인해보자.
A
: 파일을 add, 즉 staged한 상태로 추가한 파일 중 새로 생성한 파일을 말한다.AM
: 파일을 add한 후, 내용을 변경했으나 아직 add하지 않은 Staged면서 Unstaged인 상태를 말한다.??
: Local에 파일을 저장해놓긴 했으나 아직 add하지 않은 상태를 말한다.
git add - 파일을 staging영역으로 올리기
저장하고픈 파일들을 묶는 것을 stage에 파일 올리기 또는 add라고 한다. git add
는 파일을 관리 대상으로 만들어주는 명령어로, 쉽게 말해 git에게 xx파일을 관리해줘!라고 말하는 것과 같다.
🚨 반드시 파일을 add해야만 commit할 수 있다.
git add (file path)
: staging area에 추가할 파일을 지정할 때git add -A
: 수정된 모든 파일을 추가할 경우
-> (실수를 줄이기 위해 각각의 파일을 add하는 것이 좋긴하다)
git commit - 파일 커밋하기
파일을 올린 후 git add
를 하면 git은 바로 파일을 Staged상태로 만든다.
첫 파일을 add한 후 파일을 3번 수정하고 다시 commit을 하면, 3번 수정하기 전 상태의 파일이 commit된다. 즉, 마지막으로 git add
명령을 실행했을 때의 버전인 첫번째 파일(버전)이 커밋된다.
🚨 git add
명령을 실행한 후, 파일을 수정하면 git add
를 다시 해주어야 최신 버전의 staged가 만들어지는 것이다.
git commit -m "어떤 변화가 있는지 작성"
: 간단한 메시지를 남기며 커밋할 때git commit
->i 자판 누르기
->커밋메시지 입력
->esc
누르기 ->:wq
누르고enter
: 여러 줄의 메세지를 남기며 커밋할 때
git diff - 파일의 변경된 점 확인하기
파일 내용이 변경된 경우, 변경된 내용을 확인하는 방법이다.git diff
를 사용하면 각각의 branch의 현재 상태를 비교할 수 있다.
git diff (commitA) .. (commitB)
: 커밋A와 커밋B의 차이점을 비교git diff -staged
orgit diff --cached
: Staging Area에 넣은 파일의 변경 부분을 보고싶을 때 사용
git log - commit history 조회
git log
: 현재 저장소의 시간순 commit historygit log -p
: history와 diff 함께보기git log -Number
: history 개수 지정git log -grep keyword
: commit 메시지 조회git log -online
: muline으로 작성된 메시지 한줄로 표시하기
git branch - 다른 형상 만들기
branch는 잘 실행중이던 프로젝트를 건드리지 않은 채 새로운 기능을 추가, 실험하고 싶을 때 사용한다.
🚨 On branch master
: git은 기본적으로 master branch를 생성하고, 최초로 commit을 하게 된 경우 자동으로 master
라는 branch를 만든다. 최초이기 때문에 가장 마지막에 위치해있는 commit을 가리킨다.
git branch
: branch 목록 확인git branch (branch_name)
: branch 생성하기git branch -d (branch_name)
: merge된 branch만 삭제git branch -D (branch_name)
: 해당 branch를 아예 삭제
git checkout - branch 변경하기
git checkout (branch_name)
: 지정한 branch로 변경git checkout -b (branch_name)
: 새로운 branch 생성 후, 그 branch로 변경하기
branch를 변경하면 생기는 일
- index와 working dir의 파일들이 변경된 branch를 기준으로 switching되며, HEAD가 가리키는 branch가 변경된다.
- branch 변경 내역은
git log --branches --decorate --graph
로 확인할 수 있다.
git merge - branch 합치기
ex1에서 작업한 내용을 main branch에도 갖게하고 싶다? 그렇다면 우선 ex1 branch에서 main branch로 checkout을 한 후, git merge ex1
을 하면 자동으로 commit 메시지가 작성된다.
git merge (target_branch_name)
: merge로 branch 합치기
🚨 이 때, 코드가 반영될 branch(대부분 master)에서 merge를 수행해야 한다.
git remote - 원격저장소 command
git remote add (remote alias) (remote url)
: 원격 저장소 추가git remote -v
: 원격 저장소 목록 확인
git push - 원격 저장소에 넣기
commit을 하면 현재 작업 내용의 save data가 내 컴퓨터에 저장된다. 만약 컴퓨터가 고장나게 되면, commit한 data들도 전부 날라가게 되므로 commit 후 GitHub에 업로드하는 것이 좋다.
git push
: 현재까지 commit한 것들을 전부 올려준다.
git clone - 이미 존재하는 저장소 받아오기
GitHub에 이미 생성되어있는 repository를 내 Local로 가져와보자. 해당 repository가 내 local에 생성되는 것을 확인할 수 있다.
git clone (repository_url)
: 해당 repository를 내 local로 가져온다.
git fetch, pull - 원격 저장소 변경내용 가져오기
remote 변경 사항을 가져오는 방법은 2가지가 있다.
1. git fetch (remote) (remote_branch)
: 원격 저장소의 변경사항을 가져와서 원격 브랜치를 갱신한다.
2. git pull (remote) (remote branch) : (local branch)
: git fetch에서 하는 원격 저장소의 변경사항을 가져와서, 지역브랜치에 합치는 작업을 한번에 한다.
git mv - 폴더명 변경하기
실수로 폴더명을 잘못 설정했거나, 부득이하게 폴더명을 수정해야하는 경우가 있을 수도 있다. 그 때 사용하는 명령어이다.git mv 변경전폴더명 변경을원하는폴더명
을 입력한 후 아무 결과도 뜨지 않으면 변경에 성공한 것이다. 이를 다시 GitHub에 올려주어야 하니 commit -m "change the folder name"
이런 식으로 commit 메시지를 작성해준 후 push까지 진행하면 된다.
'Git' 카테고리의 다른 글
git 히스토리 삭제 github 특정 파일 (보안파일, 패스워드, 비밀번호) 히스토리 삭제하는 방법 (0) | 2022.01.26 |
---|---|
git 커밋 git add -p 명령어를 사용해서 커밋하기 (0) | 2021.10.11 |
소스트리 Remote에 있는 브랜치 상태 갱신 하는 방법 (0) | 2021.09.15 |
github remote: Permission to 403 에러 (0) | 2021.04.01 |
git push 오류 발생 시 (2) | 2019.09.08 |
개의 댓글