[생성]
git config --global user.name"(name)"
git config --global user.email"(mail address)"
[생성 확인]
git config --global user.name
git config --global user.email
[기본 브랜치명 변경]
git config --global init.defaultBranch main
[.gitignore] : 깃으로관리하지 않을 파일이름을 적은 파일
- 모든 file.c : file.c
- 최상위 폴더의 file.c : /file.c
- 모든 .c 확장자 파일 : *.c
- .c 확장자지만 무시하지 않을 파일 : !not_ignore_this.c
- logs란 이름의 파일 또는 폴더와 그 내용들 : logs
- logs란 이름의 폴더와 그 내용들 : logs/
git init
git status
git add 파일이름.파일형식
git add . : 모든파일 올리기
git commit -m "message"
[Vim mode]
- 입력 시작 : i
- 입력 종료 : esc
- 저장 없이 종료 : :q
- 저장 없이 강제 종료 : :q!
- 저장하고 종료 : :wq
git log
[시점 되돌리기(hard)] : 이후 시점의 기록을 제거
git log -> 되돌아갈 log의 commit 뒤의 일련번호 앞 6자리 복사한 다음
git reset 6자리 --hard
[시점 되돌리기(soft)]
: 이후 시점에서 해당 시점의 취소버전을 추가. 협업시에는 공유된 코드의 충돌을 피하기 위해 revert를 사용해야 함
git log -> 취소할 시점의 log의 commit 뒤의 일련번호 앞 6자리 복사
git revert 6자리
[branch]
git branch (branch_name)
git checkout (branch_name)
-> checkout명령어가 Git 2.23버전부터 switch, restore로 분리
git branch - (branch_name) : branch 삭제
git branch -m (기존 브랜치이름) to (바꿀 브랜치이름)
[merge]
: 앞의 내역은 그대로 두고 마지막 버전만 병합. 기존의 가지들(사용내역)이 남아있음
git merge (branch_name_for_merge)
* 저장하고 나가기 :wq
git log --graph --all --decorate : 두 분기에서의 작업내용을 시각화
[rebase]
: 재배치. 분기들을 정리할 때 merge대신 사용
: 기존의 기록을 다 잘라 main에 이어붙이기 때문에 히스토리가 남지않고 깔끔하게 정리됨
[conflict]
두 브랜치의 내용이 같은 상태에서 병합 시도할때 error
-> 한쪽을 지워주고 저장한 다음
git add -A
git commit -m "messate"
:wq (merge완료)
git merge --abort : merge 중단
git rebase --continue : 충돌 부분을 수정한 뒤 gtt add . 후 실행
[github - upload]
git remote add origin (git address)
git branch -M main : 기본 브랜치명을 main으로
git push -u origin main
git push
[github - download]
git clone (git address)
git pull
* push할 것이 있을 때 pull 하기
① git pull --no-rebase : merge 방식. 로컬과 원격의 어긋난 시간선을 한군데로 모아줌
② git pull --rebase : rebase 방식. 원격 저장소의 파일을 붙인 다음에 내가한 것을 잘라서 붙이는 방법
[github - conflict]
* 위의 방법과 동일
* 협업시 pull할때 rebase는 ok
git push --force : 로컬의 내역 강제 push. 협업시 논의 후 사용
[로컬에서 브랜치 만들어 원격에 push]
1. 브랜치 생성
2. git push
3. git push -u origin (branch_name)
git branch --all
[원격의 브랜치 로컬에 받아오기]
1. 브랜치 생성
2. git fetch : 원격의 변경사항 확인
3. git switch -t origin/(branch_name)
git push origin --delete(원격의 브랜치명) : 원격의 브랜치 삭제