git repository, branch 등 - 3월 21일

조준수·2023년 3월 29일
0

Git 1

Part 06. Git 11장 01이론 - 버전관리_

  1. git
    (1) 버전관리(vcs, 형상관리) 시스템의 한 종류

  2. 버전관리를 하는 이유
    (1) source data + history 관리
    (2) 협업, 작업 추적, 복구 등이 가능

  3. 버전관리 시스템의 종류
    (1) 중앙관리형(CVCS) : CVS, SVN
    (2) 분산관리형(DVCS) : Mercurial, Git

  4. github
    (1) git 기반의 서비스
    (2) git을 호스팅 해주는 웹 서비스, 협업을 위한 기능을 제공
    (3) 소스코드 보안이 중요한 경우 사용을 기피함

  5. gitlab
    (1) 설치형 버전관리 시스템(소스코드 보안이 중요한 기업에서 사용)
    (2) 클라우드 버전 관리 시스템(10명 이하 무료)
    (3) issue tracker, git remote repository, api, team, group 기능 제공

3장 03이론 - Git Global Configuration_

  1. global username & email
    (1) git config --global user.name username
    (2) git config --global user.email email

  2. crlf - windows
    (1) windows - 가져올 때는 lf를 crlf로 변경하고 보낼 때는 crlf를 lf로 변경
    (2) git config --global core.autocrlf true

  3. editor
    (1) git config --global core.editor editor

  4. 전체 설정 확인
    (1) git config --list

Git 2

3장 05이론 - Git 기본용어_

  1. repository
    (1) 소스코드가 저장되어 있는 여러 개의 branch가 모여있는 디스크상의 물리적 공간
    (2) local과 remote로 구분

  2. checkout
    (1) 특정 시점이나 branch의 소스코드로 이동하는 것을 의미
    (2) checkout 대상 : branch, commit, tag
    (3) checkout을 통해 과거 여러 시점의 코드로 이동이 가능

  3. stage
    (1) 작업할 내용이 올라가는 임시저장영역
    (2) 이 영역을 이용하여 작업한 내용 중 commit에 반영할 파일만 선별하여 commit을 수행

  4. commit
    (1) 작업할 내용을 local repository에 저장하는 과정
    (2) 각각의 commit은 의미 있는 변경단위이고, 변경에 대한 설명을 commit log로 남김

  5. tag
    (1) 임의의 commit 위치에 쉽게 찾아갈 수 있도록 붙여놓은 이정표
    (2) tag가 붙은 commit은 commit id (version) 대신 tag name으로 쉽게 checkout 가능

  6. push
    (1) local repository의 내용 중 remote repository에 반영되지 않은 commit을 remote repository로 보내는 과정
    (2) 검증되지 않은 코드는 push하지 않도록 함

  7. pull
    (1) remote repository에 있는 내용 중 local repository에 반영되지 않은 내용을 가져와서 local repository에 저장하는 과정
    (2) push 과정에서 충돌이 일어나서 push가 거절된 경우, pull을 통해 remote repository의 변경 내용을 local repository에 반영하여 충돌을 해결한 뒤 다시 push를 시도해야 함.

  8. branch
    (1) 특정 시점(commit 단위)에서 분기하여 새로운 commit을 쌓을 수 있는 가지를 만드는 것(?)
    (2) 모든 branch는 최종적으로 다시 master branch에 merge되는 형식으로 진행 됨.

  9. merge
    (1) 하나의 branch를 다른 branch와 합치는 과정
    (2) merge 과정에서 충돌이 발생하는 경우 diff를 수정하여 충돌을 해결한 뒤 merge를 진행할 수 있음

4장 01이론 - Local Repository_

  1. 구성
    Git이 관리하는 3가지 단계로 구성
    (1) Working Directory : 실제 소스 파일, 생성한 파일들이 존재
    (2) Index(Stage) : Staging area(준비 영역)의 역할, git add한 파일들이 존재
    (3) HEAD : 최종 확정본, git commit한 파일들이 존재

4장 02실습 - Local Repository_

  1. 파일 만들기
    mkdir git_ws

  2. git에서 작업하기
    git init

  3. git에서 관리하는 파일 확인
    ls -all
    (실제 폴더에서는 보기 -> 표시 -> 숨긴 항목)

  4. 텍스트 파일 만들기
    touch test.txt

  5. git이 관리하는 폴더 상태 확인
    git status

  6. stage에 파일 추가
    git add test.txt

  7. commit 하기
    git commit -m "first commit" test.txt

4장 04실습 - Remote Repository 생성_

  1. remote repository와 local repository 연결
    git remote add origin remote repository 주소
    (주소 사이 // 뒤에 닉네임:토큰@)

  2. remote repository 정보 확인
    git remote -v

Git 3

4장 05이론 - Remote Repository 등록_

  1. remote repository에 변경 내용 push
    git push origin master(or main)

  2. local repository에 pull 하기
    git pull origin master(or main)
    (ls 해서 pull한 파일이 추가돼있으면 연결된 것)

4장 09실습 - Local Repository 혼자서 해봅시다(5~7번)_

  1. 파일 내용 확인하기
    cat exam.txt

  2. 텍스트 파일 만들고 내용도 넣기
    cat > exam3.txt
    This is git exam3.
    (컨트롤+D)

5장 01이론 - Remote Repository_

  1. readme 파일
    (1) 프로젝트에 대한 설명, 사용 방법, 라이센스, 설치 방법 등에 대한 내용을 기술하는 파일
    (2) 나, 직장 동료, 프로그램 사용자를 위해 존재

  2. gitignore
    (1) git 버전 관리에서 제외할 파일 목록을 지정하는 파일
    (2) 사용자가 원하지 않는 파일들을 자동으로 commit 대상에서 제외

Git 4

5장 05이론 - Remote Repository 복제하기_

  1. 복제하기
    git clone <repository 주소>.git
    (유저네임과 토큰을 함께 등록할 수 있다.)

5장 07이론 - Branch_

  1. local branch 조회
    git branch

  2. remote branch 조회
    git branch -r

  3. 모두 조회
    git branch -a

  4. branch 생성
    git branch

  5. branch 이동
    git checkout

  6. branch 생성+이동
    git checkout -b

  7. local branch 삭제
    git branch -d

  8. remote branch 삭제
    git push origin --delete

Git 5

7장 01이론 - Git Graph, Git Log and Diff 실습환경 만들기_

  1. 파일 추가 후 저장
    cat > hello.py
    print("hello, world")
    (계속 추가하거나 끝내고 싶을 때는 컨트롤+D)
    (1) 파일이 존재한다면 파일의 내용을 덮어씀
    (2) 파일이 존재하지 않는다면 파일을 먼저 생성하고 파일의 내용을 쓸 수 있게 해줌
    (3) >> 쓰면 원래 내용에서 붙여서 씀
profile
print(‘안녕하세요! 반갑습니다!’)

0개의 댓글