개요
어제 아찔한 일이 있었다. 브랜치를 잘못 날렸다가 소스를 통으로 날린 것이다. master 노드에 push했다고 생각했는데 아니었나 봐… 소스 트리(Source Tree)를 주로 사용하나, 복구하기 위해서는 터미널을 사용해야 했다.
뭐, 그렇다. 언젠가 또 터미널을 쓸 날이 올 테니까! 정리하는 게 맞겠지! (물론 구글링하면 바로 나오긴 함.)
저장소 받아오기(clone)
clone을 원하는 경로에서 명령어를 실행해야 한다.
1 2 3 4 5 6 7 8
| # 로컬 저장소 복제 git clone /로컬/저장소/경로
# 원격 서버 저장소 복제 git clone 사용자명@호스트:/원격/저장소/경로
# github 레지스토리에서 복제 git clone <url>
|
변경된 내용 추가하기(add)
1 2 3 4 5
| # 원하는 파일만 추가 git add <파일 이름>
# 모든 파일 추가 git add *
|
Commit하기
1
| git commit -m "이번 확정본에 대한 설명"
|
Push하기
1 2 3 4 5 6 7 8 9 10
| # master node에 push git push origin master
# 다른 node(branch)에 push git push origin <branch 이름>
# 원격 저장소에서 복제한 게 아닌 # 로컬 저장소에서 원격 저장소로 올리는 경우 # 다음의 명령어 먼저 실행하고 push해야 한다. git remote add origin <원격 서버 주소>
|
Branch 생성
1 2 3 4 5 6 7 8 9 10 11
| # 'd2fault'라는 이름의 브랜치 생성 git checkout -b d2fault
# 'master' 가지로 돌아오기 git checkout master
# 브랜치 삭제하기 git branch -d feature_x
# 원격 저장소로 전송하기 전에는 아무도 가지에 접근할 수 없다. git push origin <가지 이름>
|
갱신과 병합(merge)
1 2 3 4 5 6 7 8
| # 로컬 저장소를 원격 저장소에 맞춰 갱신하기 git pull
# 다른 가지의 변경 내용을 현재 가지에 병합하기 git merge <가지 이름>
# 병합 전 변경 내용 확인 git diff <원래 가지> <비교 대상 가지>
|
로컬 내용 되돌리기
1 2 3 4 5 6 7
| # 로컬의 내용을 변경 전 상태(HEAD)로 되돌림 git checkout -- <파일 이름>
# 로컬의 모든 내용을 포기하고 # 원격 저장소의 내용으로 복구하기 git fetch origin git reset --hard origin/master
|