본문 바로가기
Git

Git, Github

by Song1234 2024. 4. 26.

Git

버전관리 시스템의 종류

✔ 버전관리
여러 파일을 하나의 버전으로 묶어 관리하는 것

버전관리 시스템의 종류

1 클라이언트 - 서버 모델
* 하나의 중앙 서버로 여러 클라이언트 들이 각자 필요한 것만 가져와서 작업을 하고 다시 중앙 서버로 보내서 통합하는 방식
* SVN, CVS
2 분산 모델
* 하나의 중앙 서버가 존재하지만 여러 클라이언트들은 각자의 컴퓨터 저장소에 전체 사본을 가지고 작업하는 방식
* Git

Git의 장점

  1. 동시에 작업하는 사람들과 소스코드를 주고받을 필요가 없음
  2. 같은 파일을 여러명이 동시에 병렬 개발이 가능
  3. 변동 과정을 체계적으로 관리할 수 있고, 언제든지 지난 시점의 버전으로 되돌릴 수 있음
  4. 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있고, 중앙 서버의 데이터가 유실되어도 다시 복구할 수 있음

Git 명령어

  1. 프로젝트 디렉토리 내에 "로컬 저장소"를 생성
  • 원하는 프로젝트 위치로 이동 후 "git init"를 실행
    C:\Song\KDT\GIT\project
  1. git 버전 관리할 파일을 선택(stage에 올림)
    git add index.html
  1. 하나의 버전을 만들기
  • 로컬 시스템에서 파일을 수정/생성/삭제한 원격 저장소에 반영할 파일들을 선별하는 것
  • 파일이 변경될 때 변경 사항은 자동으로 저장되지 않음
  • git에게 새 커밋을 생성하여 변경 사항을 저장하도록 지시
    git commit -m "index.html 커밋"

만약 아래와 같이 에러가 발생하는 경우
Author identity unknown
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'Administrator@DESKTOP-HUJUVSS.(none)')

아래 명령어를 입력하여 해결함

  1. 로그 확인하기
    git log
  2. README.md 만들기
  • 깃허브에 업로드시 저장소 메인 설명글로 사용
  • 마크다운으로 작성
  1. 여러 파일을 함께 선택하기
  • state에 현재 디렉토리에 있는 변화된 모든 파일을 선택
    git add.
  1. 선택된 여러 파일을 커밋
  2. git commit -m "현재 디렉토리에 있는 모든 변경된 파일을 처음 커밋"

깃허브(GitHyb)

  • git으로 버전 관리한 코드를 업로드 할 수 있는 클라우드 서비스
  • 단순히 저장만 하는것이 아니라 다른 유저들과 함께 코드를 공유하고 온라인으로 하나의 프로젝트를 개발할 수 있게 해줌
  1. 로컬 저장소에서 github 저장소 주소를 설정
    git remote add origin https://github.com/Songysp/test.git삭제하기
    git remote remove origin
  2. 확인하기
    git remote -v
  1. 생성한 커밋(버전들)을 github로 전송
  • 원격 저장소에 업로드하여 다른 사용자와 커밋을 공유
  • git push -u origin master
  1. Git Repository Clone
  • Repository를 로컬 시스템에 복제하는 방법
  • 지금까지 모든 Repository의 히스토리가 포함git clone https://github.com/Songysp/test.git .
  • git clone git주소 (폴더를 생성)
    git clone git주소 . (폴더를 생성하지 않음)
  1. Git Repository Fork
  • 하나의 Repository를 다른 계정(또는 네임스페이스)으로 복사
  • Git 명령어가 아닌 Github에서 제공
  • 다른 사람의 github계정 Repository에서 fork를 눌러 내 계정 Repository로 복사
  1. pull
    원격저장소에서 fetch 명령어로 가져온 후 merge까지 한번에 실행하는 명령
    git pull origin
  2. fetch
  • 원격 저장소에서 소스를 가져오기
  • merge를 사용하지 않음
    • git fetch origin
  1. branch
  • 작업에 대한 가지
  • 큰 줄기(master)에 영향을 주지 않고 가지에서만 작업을 별도로 할 수 있음
  • 브랜치를 사용하여 저장소의 메인 분기에 영향을 미치지 않고 여러 기능이나 버그 수정을 동시에 수행할 수 있음