git git git~ 개발자라면 꼭 알아야 할 git 사용법 !
오늘은 git에 대한 내용과 자주 쓰이는 명령어를 정리해보았다.
Git은 버전관리시스템이다. 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 init
은 현재 해당하는 디렉토리에 내가 작업을 진행하겠다! 라고 git에게 알려주는 것과 같다. 이는 .git
이라는 하위 디렉토리를 만들고, 이 디렉토리에는 버전정보들이 전부 저장되어 있다.
git init
git init (directory path)
ls -al
git으로 파일을 관리하려면 저장소에 파일을 추가(add), 커밋(commit, 여태까지 한 작업을 git db에 기록&저장)해야한다.
git status -s
를 이용하여 각 파일의 상태를 확인해보자.
A
: 파일을 add, 즉 staged한 상태로 추가한 파일 중 새로 생성한 파일을 말한다.AM
: 파일을 add한 후, 내용을 변경했으나 아직 add하지 않은 Staged면서 Unstaged인 상태를 말한다.??
: Local에 파일을 저장해놓긴 했으나 아직 add하지 않은 상태를 말한다.저장하고픈 파일들을 묶는 것을 stage에 파일 올리기 또는 add라고 한다. git add
는 파일을 관리 대상으로 만들어주는 명령어로, 쉽게 말해 git에게 xx파일을 관리해줘!라고 말하는 것과 같다.
🚨 반드시 파일을 add해야만 commit할 수 있다.
git add (file path)
: staging area에 추가할 파일을 지정할 때git add -A
: 수정된 모든 파일을 추가할 경우파일을 올린 후 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
를 사용하면 각각의 branch의 현재 상태를 비교할 수 있다.
git diff (commitA) .. (commitB)
git diff -staged
or git diff --cached
git log
: 현재 저장소의 시간순 commit historygit log -p
: history와 diff 함께보기git log -Number
: history 개수 지정git log -grep keyword
: commit 메시지 조회git log -online
: muline으로 작성된 메시지 한줄로 표시하기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_name)
: 지정한 branch로 변경git checkout -b (branch_name)
: 새로운 branch 생성 후, 그 branch로 변경하기git log --branches --decorate --graph
로 확인할 수 있다.ex1에서 작업한 내용을 main branch에도 갖게하고 싶다? 그렇다면 우선 ex1 branch에서 main branch로 checkout을 한 후, git merge ex1
을 하면 자동으로 commit 메시지가 작성된다.
git merge (target_branch_name)
: merge로 branch 합치기🚨 이 때, 코드가 반영될 branch(대부분 master)에서 merge를 수행해야 한다.
git remote add (remote alias) (remote url)
: 원격 저장소 추가git remote -v
: 원격 저장소 목록 확인commit을 하면 현재 작업 내용의 save data가 내 컴퓨터에 저장된다. 만약 컴퓨터가 고장나게 되면, commit한 data들도 전부 날라가게 되므로 commit 후 GitHub에 업로드하는 것이 좋다.
git push
: 현재까지 commit한 것들을 전부 올려준다.GitHub에 이미 생성되어있는 repository를 내 Local로 가져와보자. 해당 repository가 내 local에 생성되는 것을 확인할 수 있다.
git clone (repository_url)
: 해당 repository를 내 local로 가져온다.remote 변경 사항을 가져오는 방법은 2가지가 있다.
1. git fetch (remote) (remote_branch)
: 원격 저장소의 변경사항을 가져와서 원격 브랜치를 갱신한다.
2. git pull (remote) (remote branch) : (local branch)
: git fetch에서 하는 원격 저장소의 변경사항을 가져와서, 지역브랜치에 합치는 작업을 한번에 한다.
실수로 폴더명을 잘못 설정했거나, 부득이하게 폴더명을 수정해야하는 경우가 있을 수도 있다. 그 때 사용하는 명령어이다.
git mv 변경전폴더명 변경을원하는폴더명
을 입력한 후 아무 결과도 뜨지 않으면 변경에 성공한 것이다. 이를 다시 GitHub에 올려주어야 하니 commit -m "change the folder name"
이런 식으로 commit 메시지를 작성해준 후 push까지 진행하면 된다.
do it! 지옥에서 온 문서 관리자 깃&깃허브 입문