공부

Git 정리

박연준 2023. 9. 17. 22:15

 

Git을 사용하면 좋은 점

  • 프로젝트의 버전을 과거로 되돌릴 수 있으며, 특정 내역을 취소할 수 있다.
  • 프로젝트의 여러 모드를 쉽게 전환하고 관리할 수 있다.
  • 여러 사람들과 프로젝트에서 협업하기 좋다.

 

Git 설치

  1. https://git-scm.com/  사이트로 들어가 Downloads 클릭
  2. 자신에게 맞는 운영체제 버전으로 다운로드
  3. 설치 완료 후 터미널에 git --version 명령어로 버전 확인 
  4. 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