Git

YongjLEE·2023년 7월 30일

Git

목록 보기
1/3
post-thumbnail

1. 버전 관리 시스템

“버전 관리” 는 무엇이고 우리는 왜 이것을 알아야 할까? 버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다.

VCS로 이미지나 레이아웃의 버전(변경 이력 혹은 수정 내용)을 관리하는 것은 매우 현명하다. VCS를 사용하면 각 파일을 이전 상태로 되돌릴 수 있고, 프로젝트를 통째로 이전 상태로 되돌릴 수 있고, 시간에 따라 수정 내용을 비교해 볼 수 있고, 누가 문제를 일으켰는지도 추적할 수 있고, 누가 언제 만들어낸 이슈인지도 알 수 있다. VCS를 사용하면 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있다. 이런 모든 장점을 큰 노력 없이 이용할 수 있다.

버전 관리 시스템 즉, VCS(Version Control System)
LVCS(로컬 버전 관리) -> CVCS(중앙집중식 버전 관리) -> DVCS(분산형 버전관리)의 과정을 거쳤다.

- LVCS


- CVCS


- DVCS
CVCS와 달리 DVCS는 버전관리 데이터베이스까지 가지고 있다


2. git 커밋 하는법

git 코드는 아래 3단계에서 존재한다.
workingDirectory
stageArea (workingDirectory에서 git add)
.git directory(repository)(git commit)

0. main이나 feature/~ 등 branch를 생성한다.

1. 코드를 작성 및 수정해 저장한다.

2. git add를 한다

3. git commit를 한다.

4. push 후 github에서 pull request를 해 merge 한다.

5. main에서 pull을 한다.


### 3. GIT 명령어
$ mkdir -p project/first-git
  • mkdir -p 은 파일이 없어도 만들어준다
$ git init 
  • 새로운 git repository를 만든다
$ git status
  • 깃 상태를 본다
$ git add
  • 코드를 stage로 올린다
$ git rm --cached README.md 
  • stage에서 내림
$ git remote add origin
  • 깃 저장소 링크를 추가한다.
$ git commit
  • 커밋 하는것
$ git log
  • 로그확인
$ git log -p -i
  • -p 자세히 보는 옵션
  • -i 최근 것 하나를 선택하는 옵션
  • 라인단위로 commit하는 것
$ commit -m "~" 
  • vi에디터에 들어가지 않고 "~"에 커밋하는 제목 입력하여 커밋
$ git reset HEAD ~
$ git restore —staged ~
$ git reset -soft
$ git reset -hard
$ git reset -mixed

–soft 안사라진 상태 , stage에 올라가있는 상태, 즉
–hard 내용이 사라지게 만듬, unstage에 있음
–mixed Git의 스테이징 영역(인덱스)은 변경되지만, 실제로 작업 디렉토리에 있는 파일들은 수정 안됨

stage와 branch와 관계없음
commit은 branch에 따라 실행됨

  • git reset에 대한 부분은 추후에 공부해 추가하겠음
$ git checkout ~
  • git checkout ~ 이전의 branch로 이동
$ git log –decorate –graph
  • graph 선으로 git log를 보여줌
  • decorate 색깔을 입힘
$ git checkout -b 
  • branch를 만들면서 checkout함
$ git push -u origin main
  • -u: 로컬 브랜치와 원격 브랜치 간에 연결이 만들어지는데 즉, -u 뒤에 오는 "origin main"은 로컬 브랜치 "main"과 원격 저장소 "origin"의 "main" 브랜치를 연결하는 것이라 다음부터 git push만 입력해도 앞으로 변경 사항을 간단히 푸시할 수 있게 됨
$ git commit -am "~"
  • 추가하고 메시지 만들어 commit
$ fork remote->remote
$ clone remote->local
  • fork : 원격 저장소를 하나의 원격 위치에서 다른 원격 위치로 사본을 만드는 것
  • clone : 원격 저장소의 로컬 환경에 사본을 만드는 작업으로, 여러분이 작업한 내용을 커밋하고 다시 원격 저장소로 푸시할 수 있는 것

-git merge와 git rebase의 차이
새로운 커밋을 만들고 담김 ←→ 원래 커밋내역에 끼워넣음


- master-> main로 변경하는 법

  1. 기본 값 변경
$ git config --global init.defaultBranch main
  1. 현재 repository에서만 사용할 수 있는 방법(일시적)
$ git branch -M main

- 깃에 올린 것 삭제하는 법

  1. 로컬과 git 모두에서 삭제

git rm 파일명
git commit -m 커밋 메세지 : 지운 다음에도 반드시 커밋 해줘야 한다
(그냥 repository에서 파일 선택 - 휴지통 - 커밋 체인지 해주면 됨)

  1. 로컬은 유지 git에서만 삭제

git rm —cached 파일명
git commit -m 커밋 메세지 : 얘도 지우고 반드시 커밋

  • git 텍스트 에디터는 vim, nano, notepad 등이 있다.

  • .gitignore파일: 컴퓨터 로컬정보나 버전관리파일 등을 git add . 시 무시하게 도와주는 파일

git flow

profile
이용준의 블로그입니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 30일

이런 유용한 정보를 나눠주셔서 감사합니다.

답글 달기