오늘은 내가 주로 사용하는 git 명령어들을 정리해 보도록 하겠다! local에서 작업한 것을 remote로 보내는 법, remote를 local에 가져와서 작업하는 법, 자주 사용하는 명령어 등에 대하여 적어보겠다. 

 

그 전에, github 사용을 위한 사전지식을 몇개 말해보자면, 

 

 

 

<GitHub 사전지식>

 

1. 로컬 저장소(local)와 원격 저장소(remote)

git 저장소는 자신의 컴퓨터인 로컬 저장소와 서버에 있는 원격 저장소로 나뉜다. local에서 작업한 것은 remote로 push해줘야만 변경사항이 서버에 반영된다. 

 

2. add, commit, push

자신이 작업한 내용을 remote 저장소에 반영하기 위해서는, 변경사항을 추가하고(add), local에 저장하고(commit), remote에 업로드(push) 해야한다.

 

3. branch

여러 개발자들이 공동으로 작업할 수 있게 기본 master branch에서 새로운 가지를 만들어 독립된 공간에서 작업을 수행할 수 있다. 이 때 주기적으로 변경사항을 합치는 것이 필요하다.  

 

4. pull

remote에 있는 내용을 local에 받는 과정이다. 이때 현재 자신의 branch가 어디인지 확인을 잘 하고 pull하도록 한다. 만약 자신의 local에 변경사항이 있다면 pull할 시 에러가 나므로 add, commit을 진행한 후 pull하거나 stash하여 자신의 변경사항을 다른곳에 저장한 후 pull하도록 한다. 

 

5. 기본 흐름

github 공간 만들기(clone, init) => 파일 작성 => 파일의 변경사항 임시저장(add) => local에 저장(commit) => remote에 업데이트(push) => 로컬 업데이트(pull) => add => commit => push ==> pull...(반복)

 

6. 로컬 작업 시작 전 무조건 pull

remote 저장소에 변경된 사항이 있을 수 있기에(여러명이서 작업시) 무조건 파일을 건들기 전에 pull하도록 한다. 안그러면 conflict이 일어나 수동으로 고쳐야한다.

 

 

 

<자주 사용하는 명령어>

 

1. git clone https://~

깃허브에서 project를 만든 후 git clone하여 local에도 작업공간을 만든다. 

 

     1-1. git init 

깃허브에서 project를 만들어 clone하지 않고 컴퓨터에서 작업을 먼저 시작했을 때 저장소를 생성한다. 

 

2. git branch

현재 branch(*표시 되어있는) 및 local branch 확인

 

     2-1 git branch jayeon

jayeon branch 만들기

 

     2-2 git branch -d jayeon

jayeon branch 삭제

 

     2-3 git branch -D jayeon

jayeon branch 강제 삭제(merge가 되지 않은 branch에 대한 삭제)

 

     2-4 git push origin -d jayeon

remote 서버에 있는 jayeon branch 지우기

 

    2-5 git push origin :jayeon

로컬에서 jayeon branch 지웠을 때 remote에도 그 변경사항 반영하기

 

3. git checkout jayeon

jayeon branch로 이동

 

     3-1 git checkout -b jayeon

jayeon branch 만들고 이동

 

4. git status

현재 상태(add전후, commit 전후 등 확인 가능) 및 브랜치 확인

 

5. git add, git commit, git push, git pull

 

6. git log

로컬 저장소의 commit history 보기

 

     6-1. git log -n 10

10개만 보기

 

     6-2. git log --oneline --graph

log 그래프로 확인

 

7. git checkout -- jayeon.py

변경된 jayeon.py 되돌리기

 

8. git rm jayeon.py

jayeon.py 로컬, git 저장소 모두에서 삭제

 

     8-1. git rm --cached jayeon.py

jayeon.py를 git 저장소에서 삭제 (로컬은 유지) 

 

 

 

<local ==> remote : remote에서 merge하기>

 

1. git checkout -b jayeon

jayeon이라는 branch를 만든 후 jayeon으로 이동

 

2. git push origin jayeon

remote에 jayeon branch 생성

 

3. git branch --set-upstream-to=origin/jayeon jayeon

remote와 local branch 연결

 

(작업 후)

 

4. git add .

변경사항 모두( . )임시저장

 

5. git commit -m "메세지 내용"

commit 하여 local 저장소에 반영

 

6. git push

remote 저장소에 변경사항 반영-jayeon에 반영

 

7.홈페이지에서 merge 진행

 

 

 

<local ==> remote : local에서 merge하기>

 

1. git checkout -b jayeon

jayeon이라는 branch를 만든 후 jayeon으로 이동

 

(작업 후)

 

2. git add .

변경사항 모두( . )임시저장

 

3. git commit -m "메세지 내용"

commit 하여 local 저장소에 반영

 

4. git checkout master

master branch로 이동

 

5. git merge jayeon

jayeon branch를 합치려는 target branch 로 이동 후 local에서 target에 jayeon branch merge

 

6. git push

remote 저장소에 변경사항 반영

 

 

 

<remote ==> local>

 

1. git branch -a

local branch 및 remote branch 확인

 

2. git checkout -b jayeon origin/jayeon

remote의 origin/jayoen branch와 이어지는 local jayeon branch 생성

 

(작업 후)

 

3. git add .

변경사항 모두( . ) 임시저장

 

4. git commit -m "메세지 내용"

commit 하여 local 저장소에 반영

 

5. git push 

remote 저장소에 반영 -jayeon에 반영

 

 

 

<그 외>

 

1. git stash 

지금의 상태 임시 저장. commit 해야하는 것이 있어 pull이 안될 때 주로 사용함.

 

2. git stash list

stash 목록 확인

 

3. git stash apply

가장 최근의 stash 가져오기

 

4. git stash apply [stash이름]

[]stash 가져오기

 

5. git stash drop

가장 최근의 stash 삭제

 

6. git stash clear

모든 stash 삭제

+ Recent posts