티스토리 뷰
Git
HoSeongYu
2022. 2. 10. 17:10
형상관리 정의
- SCM(Software Configuration Management) - 형상관리
소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것
- VCS - 버전관리시스템
- CVCS - 중앙집중 버전관리시스템 -> 중앙에서 버전관리
ex) SVN
- DVCS - 분산 버전관리시스템 -> 각 로컬에서도 버전으로 관리
ex) Github
Git 명령어
- git init : 로컬작업영역 생성
- git stauts : 변경감지 확인
- git add : 인덱스 영역에 폴더(tree) 생성 -> 신규 or 변경 파일 저장 + 기존 폴더(tree) 해쉬값 저장
- 최초 설정 필요(사용자정보)
git config --global user.name "이름"
git config --global user.email "이메일"
- git commit : 헤더영역에 버전 기록
ex) git commit -m "첫번째 커밋" -> -m : message
- git reset : 복구하기
git reset --soft "해쉬값" : 헤더영역의 버전을 날림 -> 커밋로그변경시 사용
git reset --mixed "해쉬값" : 인덱스, 헤더영역의 버전을 날림 -> 작업영역의 내용 변경이 필요시 사용
git reset --hard "해쉬값" : 로컬작업영역, 인덱스영역, 헤더영역의 버전을 날림 -> 이전상태로 돌아가고 싶을때 사용
- git reflog : log확인
- git commit --amend -m "~" : 최종log 변경
- git tag "tag명" : tag 달기
- git push -tags origin matser : github에 태그와 함께 push하기
Branch 관련 명령어
- git branch : branch 확인
- git branch topic : topic라는 branch 생성
- git checkout topic : branch topic 으로 이동
- git checkout -b topic : topic branch 생성하고 이동을 동시에 진행
- git merge topic : topic branch를 -> 현재 브랜치로 머지한다.(checkout master로 topic이 merge된다.)
- fast-forward merge : 형상이 같을 때
- 3way merge : 형상이 다를 때
- 3way merge 사용시 :
esc -> :wq
(저장 후 종료)
- 충돌했을때 : 직접 수정 후 git add -> git commit 진행
- git merge --no--ff topic/join :
merge bracnh 'topic/join'
의 log를 남길때 사용
- Merge시 Commit의 순서로 history가 남는다
Merge된 시간순으로 log를 남기기 위해서는 rebase 사용이 필요
- git checkout topic : merge할 브랜치로 위치시킨다.
- git rebase master : topic branch에 master를 가져온다.
- git checkout master : master로 위치시킨다.
- git merge --no--ff topic : master에 topic을 merge시킨다.
Rebase 관련 명령어
- git rebase -i HEAD~3 : 현재 위치에서 3개의 log 관련 수정
d : drop
s : squash (찌그러트림) -> 항상 pick 아래에 있어야한다.
r : log 수정
esc -> :wq
저장 후 종료
Github(remote) 관련 명령어
- git remote add origin https주소 : 클라우드 연결
git remote rm origin : 연결삭제
- git remote -v : 연결 확인
- git ls-remote : 연결 확인
- git push origin master : 파일 업로드 + 병합(merge)
- git pull origin master : 파일 다운로드 + 병합(merge)
git clone https주소 : 클라우드 연결 + 파일 다운로드 + 병합
- git fetch origin : 모든 브랜치 다운로드
- git checkout -b topic origin/topic : 브랜치 생성 및 병합(merge)
- git push -f origin topic : github에 올린 로그를 현재 로그로 덮어씌우기(PR요청했을때와 merge순간의 master,dev log가 다를때)
- rebase squash 기능 바로 사용하기 (브랜치의 Commit을 log 하나로 남기기)
- git checkout master
- git merge --squash topic
- git status
- git commit -m "message"
« 2025/05 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |