
GIT을 왜 사용할까?
- 형상관리도구, 분산버전관리로서, 팀플과 같은 협업작업 시에 일어날 수 있는 문제를 사전방어합니다.
- 같은 파일을 여러 명이 동시 작업을 하므로 병렬개발이 가능합니다.
- 소스코드의 수정 내용이 커밋 단위로 관리할 수 있고 패치 형식으로 배포가 가능해집니다.
- 개인 프로젝트에서도 버전관리를 통해 더욱 체계적인 개발이 가능합니다.
1. Git설치와 초기 설정방법, 그리고 Github 이용방법
유투버 동빈나님의 영상으로 대체합니다.
2. 필수 명령어, ()에 필요 내용 작성 ex. git add hello.txt
| 저장소로 복제시키기: clone | git clone (https://github.com/(git허브명)/(레퍼지스토리이름).git |
| 작업내용 stage로 이동시키기: add | git add () |
| commit message작성하기: commit -m | git commit -m "()" |
| push | git push |
가져와서, 수정하고, 안내(무엇을 수정/추가 했는지)하고, 올리는 과정입니다.
3. 명령어 정리, ()에 필요 내용 작성 ex. git config --global user.name "규티"
전역에서 초기 설정
| 사용자명 설정 | git config --global user.name "()" |
| 이메일 설정 | git config --global user.email "()" |
저장소별 초기 설정
| 저장소디렉토리 이동 | cd (경로명) |
| 사용자명 설정 | git config user.name "()" |
| 이메일 설정 | git config user.email "()" |
설정정보조회
| 전역에서 정보조회 | git config --global --list |
| 저장소별 정보조회 | git config --list |
저장소 관련 설정
| 새로운 저장소 초기화 | mkdir () cd () git init |
| 저장소 복제 | git clone (저장소url) |
| 새로운 원격저장소 추가 | git remote add (원격저장소) (저장소url) |
스테이징하기
| 기존의 스테이징과 커밋 | git add (파일.확장자) git commit -m "(메시지내용)" |
| 파일 일부 스테이징 | git add -p [(파일.확장자)[(파일.확장자)[…]]] |
| git대화모드로 파일 추가 | git add-i |
| 변경사항 스테이징 | git add-u [(경로)[(경로)[…]]]] git commit -m "(메시지내용)"-a // 수정&추적되는 모든 파일의 변경사항을 커밋 |
수정하기
| 작업 트리 변경사항 돌려놓기 | git checkout HEAD (파일)[(파일)] |
| 커밋 전, 스테이징 변경사항 재설정 | git reset HEAE (파일)[(파일)] |
| 마지막 커밋 고치기 | git commit -m "(메시지내용)" --amend |
| 이전 커밋 수정과 커밋 메시지 재사용 | git commit -C HEAD --amend |
브랜치
| 지역 브랜치 목록보기 | git branch |
| 원격 브랜치 목록보기 | git branch -r |
| 모든 브랜치 목록보기 | git branch -a |
| 새 브랜치 생성 | git branch (브랜치명) |
| 다른 브랜치 체크아웃 | git checkout (브랜치명) |
| 새 브랜치 생성과 체크아웃 | git branch (브랜치명) (생성위치) |
| 기존 브랜치에 새 브랜치 덮어쓰기 | git branch -f (기존브랜치) [(생성위치)] |
| 브랜치 변경 | 새 브랜치가 없다면: git checkout -m (기존브랜치) (새 브랜치) 상관없이 변경하기: git checkout -M (기존브랜치) (새 브랜치) |
| 다른 브랜치를 현재 브랜치와 합치기 | git merge (브랜치명) |
| 커밋없이 합치기 | git merge --no-commit (브랜치명) |
| 선택하여 합치기 | git cherry-pick (커밋명) |
| 커밋없이 선택하여 합치기 | git cherry-pick-n (커밋명) |
| 브랜치 이력을 다른 브랜치에 합치기 | get merge --squash (브랜치명) |
| 브랜치 삭제 | 삭제할 브랜치가 현재 브랜치에 합쳐졌을 때 : git branch -d (브랜치명) 삭제할 브랜치가 현재 브랜치에 없을 때: git branch -D(삭제할 브랜치) |
너무 많아서 미룸.