Git 의 장점은?

신치우·2023년 2월 4일
0

React

목록 보기
11/11

git이란?

분산 버전관리 시스템
주로 여려명의 개발자가 하나의 소프트웨어 개발 프로젝트에 참여할 때, 소스코드를 관리하는데 주로 사용

장점:
1. 인터넷이 연결되지 않은 곳에서도 개발 진행 가능
2. 중앙저장소가 삭제되어도 원상 복구 가증
3. 같은 파일을 여러 명이 동시에 작업하는 병렬 개발이 가능



공식 문서에 나온 특징

  1. Distributed development
  • 전체 개발 이력을 각 개발자의 로컬로 복사 제공하고 변경된 이력을 다시 하나의 저장소로 복사
  • 이러한 변경은 추가개발지점을 가져와 로컬 개발 지점과 동일하게 병합가능
  1. Strong support for non-linear development
  • 신속하고 편리한 branch 및 merge 지원, 비선형 개발 이력을 시각화하고 탐색 할 수 잇는 강력한 도구를 제공
  1. Efficient handling of large projects
  • Git은 매우 빠르고, 대형프로젝트나 이력이 많은 작업에 매우 합리적
  1. Cryptographic authentication of history
  • Git 이력은 성공한 개발이력의 commit에 의해 개정명으로 저장
  • commit 을 모르면 예전 버전으로 변경하는 것이 불가능
  • commit을 암호화 할 수 있음
  1. Toolkit design
  • Git은 손쉬운 사용과 쉬운 스크립팅을 위한 도구를 제공

추가질문
1. git fetch와 git pull의 차이

  • git fetch : 로컬 git에서 원격 저장소에서 최신 메타데이터 정보를 확인하라는 명령을 전달 -- 변경사항이 있는지 확인만하고 가져오진 않음
  • git pull : 원격 저장소에서 변경된 메타데이터 정보를 확인 + 최신 데이터를 복사하여 로컬 Git으로 가져옴
  1. local branch와 remote branch - git 의 branch란 무엇인가?
  • local 저장소 : 내 컴퓨터
  • remote 저장소 : 서버에 있는 것으로 local에서 push해 줘야만 변경사항이 저장
  • git branch란? : Git을 독립적으로 사용하기 위한 개념
  1. git의 3가지 영역
    3-1 Working directory : 현재 내가 작업하고 있는 프로젝트의 디렉토리
    3-2 Staging Area : 커밋을 하기 위해 git add 로 추가한 파일들이 모여있는 공간

    3-2-1 Staging Area의 장점
    1) 일부분만 commit 할 수 있다
    2) 충돌이 발생했을 때 해결을 위한 작업 데이터를 staging Area 저장해놓음
    3) 여러 변경 사항을 병렬로 작업할 수 있으므로 서로 다른 작업 간에 전환을 더 쉽게 수행할 수 있음

3-3 Repository : commit들이 모여있는 장소

4. commit 이 무슨 뜻인가요? : 특정 저장소의 코드베이스에 대한 변경사항을 기록한 것 (commit 식별자 - 코드베이스) 로 관리되어있음
5. git hook이란? : 특정 이벤트가 발생했을때 자동으로 특정 스크립트가 실행되도록 하는 것
종류 - 클라이언트 Hook(commit, merge 등), 서버 Hook(push 등)
참고 : Git-scm
6. git conflict 해결 방법은? :
git status를 통해 충돌이 일어난 파일을 찾음
수정 후 다시 commit
7. git을 활용한 project에서 사용한 convention

### git commit -m"컨벤션 네이밍 컨벤션 
### feat : 새로운 기능에 대한 커밋 
### fix : 버그 수정에 대한 커밋 
### build : 빌드 관련 파일 수정에 대한 커밋
### chore : 그 외 자잘한 수정에 대한 커밋 
### ci : CI관련 설정 수정에 대한 커밋 docs : 문서 수정에 대한 커밋 
### style : 코드 스타일 혹은 포맷 등에 관한 커밋 
### refactor : 코드 리팩토링에 대한 커밋 
### test : 테스트 코드 수정에 대한 커밋 "

git 함수에 대한 간단한 내용?

git init : 로컬저장소로 만들 디렉토리로 이동한 후 로컬 저장소 생성

git remote -v : 현재 연결된 remote 저장소 확인
git remote add <저장소 이름> <저장소 주소> : 자신의 원격 저장소 추가
(ex. git remote add origin http://github.com/[저장소 주소])

git clone <저장소 주소>  : 주소에 해당하는 저장소를 가져와서 사용

git status : 현재 stage area의 상태를 확인

git add <파일 이름> : 해당 파일을 커밋 대상에 추가

git commit -a -m "커밋 메시지" : 커밋 대상에 추가된 파일과 수정된 파일을 커밋함 
(수정파일을 제외하려면 -a 를 빼고 쓰면됨)

git pull <저장소 이름> : 원격 저장소의 모든 데이터를 가져와서 원격으로 최신화함

git push <저장소 이름> <브랜치 이름> : 원격 저장소(브랜치)에 데이터를 넣음

git diff : 커밋된 파일과 modified 파일 사이의 변경사항을 확인

git checkout -b <브랜치 이름> : 브랜치 이름으로 새로운 브랜치를 만들고 해당 브랜치로 Head 포인터 이동

git checkout <브랜치 이름> : 해당 브랜치로 Head 포인터 이동

git branch <브랜치 이름> : 브랜치 생성

git branch -d <브랜치 이름> : 브랜치 삭제

git 과 github

github : git을 사용하는 프로젝트를 지원하는 웹 호스팅 서비스
profile
하루에 집중을

0개의 댓글

관련 채용 정보