Git을 사용하면 좋은 점
- 프로젝트의 버전을 과거로 되돌릴 수 있으며, 특정 내역을 취소할 수 있다.
- 프로젝트의 여러 모드를 쉽게 전환하고 관리할 수 있다.
- 여러 사람들과 프로젝트에서 협업하기 좋다.
Git 설치
- https://git-scm.com/ 사이트로 들어가 Downloads 클릭
- 자신에게 맞는 운영체제 버전으로 다운로드
- 설치 완료 후 터미널에 git --version 명령어로 버전 확인
- git config --global core.autocrlf true 를 터미널에 입력 (윈도우와 맥에서 엔터 방식 차이로 인한 오류 방지)
SourceTree
- Git을 GUI로 다룰 수 있도록 도와주는 툴
- 설치 시 BitBucket 계정 관련 건너뛰기 가능
VS Code 설정
- ctrl + Shift + p => Select Default Profile => Git Bash 선택
Git 최초 설정
- GitHub 계정과는 별개로 사용자 이름과 이메일 주소 설정
- 터미널 프로그램에서 아래 명령어로 이름, 이메일 생성
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 관리
- 사용자가 원하는 위치에 폴더를 만들고 VS Code로 열기
- 해당 폴더에서 아래 명령어 입력하면 .git이란 숨겨져있는 폴더 생성됨
git init
- 아래 파일 생성
- tigers.yaml
team: Tigers
manager: John
members:
- Linda
- William
- David
- lions.yaml
team: Lions
manager: Mary
members:
- Thomas
- Karen
- Margaret
- 터미널에 아래 명령 입력
git status
Window 11에서 숨김 파일 및 폴더 보는 방법
Git의 관리에서 특정 파일/폴더를 배제해야 할 경우
- 포함할 필요가 없을 때 (자동으로 생성 또는 다운로드 되는 빌드 결과물, 라이브러리 등)
- 포함하지 말아야 할 때 (보안상 민감한 정보를 담은 파일)
- .gitignore 파일을 사용해서 배제할 요소들을 지정할 수 있음
.gitignore 사용해보기
- 폴더에 (secrets.yaml) 파일 생성
id: admin
pw: 1234abcd
- 아래 명령어로 상태 확인
git status
- .gitignore 파일 생성하여 secrets.yaml 작성
secrets.yaml
- 다시 상태 확인 (VS Code 편집기에선 흑색 처리 되고, status에 secrets.yaml 파일 안뜸)
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 status
- 파일 하나 담기
git add tigers.yaml
- 모든 파일 담기
git add .
Commit
- 아래 명령어로 commit
git commit
- 다음에 Vi 입력 모드로 진입하는데 주석 아닌 곳에 다음과 같이 입력하고 :wq로 저장하고 나오기
git commit -m "FIRST COMMIT"
- 아래 명령어나 소스트리로 확인 가능
git log
변경사항 만들고 커밋하기
변경사항
- lions.yaml 파일 삭제
- tigers.yaml의 manager를 Donald로 변경
- leopards.yaml 파일 추가
team: Leopards
manager: Luke
members:
- Linda
- William
- David
- git status로 확인
- 파일의 추가, 변경, 삭제 모두 내역으로 저장할 대상
- git diff로 확인 가능
git add .
git commit -m "Replace Lions with Leopards"
- add와 commit을 한꺼번에 하려면 아래 명령어 입력
git commit -am "(메시지)"
과거로 돌아가는 방법
- reset
- 원하는 시점으로 돌아간 뒤 이후 내역들을 지움
- revert
- 되돌리기 원하는 시점의 커밋을 거꾸로 실행
- .git 폴더를 백업 후 삭제한 다음 git 상태 확인
- git log 명령어로 되돌아갈 커밋 해쉬값 복사 후 :q 로 종료
git reset --hard (돌아갈 커밋 해쉬값)
reset 하기 전 시점으로 복원하기
- 뒤에 커밋 해쉬값이 없으면 마지막 커밋을 가리킴
git reset --hard
revert로 과거의 커밋 되돌리기
- :wq로 커밋 메시지 저장
git revert (되돌릴 커밋 해시)
- 다음 명령어는 커밋하지 않고 revert 하기
git revert --no-commit (되돌릴 커밋 해시)
여러 Branch 만들기
- add-coach란 이름의 브랜치 생성
git branch add-coach
- 브랜치 목록 확인
git branch
- add-coach 브랜치로 이동
git switch add-coach
- 브랜치 생성과 동시에 이용하기 ( 기존 git checkout -b [새 브랜치명] )
git switch -c new-teams
- 브랜치 삭제하기 ( -D 옵션은 강제 삭제)
git branch -d (삭제할 브랜치명)
- 브랜치 이름 바꾸기
git branch -m (기존 브랜치명) (새 브랜치명)
- 각각의 브랜치에서 서로 다른 작업을 하면 각각 작업한 코드들이 각자 저장
결과 살펴보기
- 여러 브랜치의 내역 편리하게 보기
git log --all --decorate --oneline --graph
브랜치를 합치는 두 가지 방법
- merge
- 두 브랜치를 한 커밋에 이어붙임
- 브랜치 사용내역을 남길 필요가 있을 때 적합한 방식
- rebase
- 한 줄로 깔끔히 정리된 내역을 유지하기 원할 때 적합
- 이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋음
merge로 합치기
- add-coach 브랜치를 main 브랜치로 merge
- main 브랜치로 이동
- 아래의 명령어로 병합
- merge는 reset으로 되돌리기 가능
- 병합된 브랜치는 삭제
git merge add-coach
git branch -d add-coach
rebase로 합치기
- new-teams 브랜치를 main 브랜치로 rebase
- new-teams 브랜치로 이동
- merge 때와는 반대
- 아래의 명령어로 병합
git rebase main
'공부' 카테고리의 다른 글
WSL 2에서 윈도우에서 오픈한 localhost 서버 접속 (0) | 2023.11.30 |
---|---|
암호기술의 활용 (0) | 2023.09.13 |
컴퓨터 구조 기초 (실습편) 과제 (0) | 2023.09.12 |