-
[git/gitbub] SummarySummary/[Git,GitHub] Summary 2024. 1. 23. 13:54
<Git을 쓰는 이유>
Git은 프로젝트의 버전을 관리할 수 있어 여러 사람들이 협업하는 데 도와준다.
<설치>
Git 설치 후
git --version # 협업시 윈도우와 맥에서 엔터 방식 차이로 인한 오류 방지를 위한 명령어 git config --global core.autocrlf true
+ SourceTree , VS CODE 설치
SourceTree는 git을 UI형식으로 사용할 수 있게 해주는 프로그램
<최초 설정>
git config --global user.name "본인 이름" git config --global user.email "본인 이메일" #확인 git config --global user.name git config --global user.email #기본 브랜치명 변경 ( 브랜치는 추후 설명 ) git config -global init.defaultBranch main #프로젝트 생성 & Git 관리 시작 git init # .git폴더 생성 #현재 git 폴더 상태 확인 git status
<깃에 올리지않고 무시하기>
.gitignore 파일 안에 파일이름 등록 # 주석 # 모든 file.c file.c # 최상위 폴더의 file.c /file.c # 모든 .c 확장자 파일 *.c # .c 확장자지만 무시하지 않을 파일 !not_ignore_this.c # logs란 이름의 파일 또는 폴더와 그 내용들 logs # logs란 이름의 폴더와 그 내용들 logs/ # logs 폴더 바로 안의 debug.log와 .c 파일들 logs/debug.log logs/*.c # logs 폴더 바로 안, 또는 그 안의 다른 폴더(들) 안의 debug.log logs/**/debug.log
<파일 하나 추가하기>
git add test1.yaml
<모든 파일 추가하기>
git add .
<커밋>
git commit -m "First Commit"
<add와 commit을 한번에> // untracked 파일이 없어야 된다.
git commit -am "메시지"
<내역 확인>
git log
<이전으로 돌아가기>
1) reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 제거
2) revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행
<reset>
git log #되돌아갈 시점의 커밋 해시 복사 git reset --hard (복사한 해시) git reset --hard # 해시를 안쓰면 마지막 커밋으로 돌아감
<revert>
git revert (되돌릴 커밋 해시) # 커밋하지 않고 revert 하기 git revert --no-commit (되돌릴 커밋 해시)
<브랜치 생성/이동/삭제>
브랜치 : 분기된 가지로 프로젝트를 하나 이상의 모습으로 관리해야 할 때와 여러 작업들이 각각 독립되어 진행될 때 사용한다.
git branch test # 브랜치 생성 git branch # 브랜치 목록 확인 git switch test # 해당 브랜치로 이동 # 브랜치 생성과 이동을 동시에 git switch -c new-test # 브랜치 삭제 git branch -d new-test # -D 는 강제삭제 # 여러 브랜치의 내역 보기 git log --all --decorate --oneline --graph
<브랜치 합치기>
1) merge : 두 브랜치를 한 커밋에 이어붙임
- 브랜치의 사용내역을 기록해둬야 할 필요가 있을 때 적합한 방식
2) rebase : 브랜치를 다른 브랜치에 이어붙임
-- 한 줄로 깔끔하게 정리된 내역을 유지하고 싶을 때 적합한 방식
- 이미 팀과 공유된 커밋들에 대해서는 사용하지 않는 게 좋음.
git merge test # main branch로 merge git branch test git rebase main # test로 이동후 rebase할 브랜치를 작성
<충돌 해결>
git merge --abort # merge 충돌 중단 git rebase --aobrt # rebase 충돌 중단 git rebase --continue # 충돌 부분 수정 후 진행
<GitHub>
GitHub는 프로젝트 파일들을 관리할 수 있는 git의 원격 저장소다.
# 로컬에 원격 저장소 추가 후 푸시하기 # 깃허브 레포지토리 생성 후 복붙 명령어 git remote add origin (원격 저장소 주소) git branch -M main # 기본 브랜치명 변경 git push -u origin main # 로컬 저장소의 커밋 내역들을 원격으로 업로드(push) git remote # 원격 목록 보기 #git remote remove (origin) # origin 원격 지우기
<프로젝트 다운받기>
git clone (원격 저장소 주소)
<push 와 pull>
1) push : 원격으로 커밋 밀어올리기
git push
2) pull : 원격의 커밋 당겨오기
git pull
<원격의 브랜치 로컬에 받아오기>
git fetch