글 목록

최신 글과 검색 결과
DEVELOPMENT/Opensoftware

오픈소프트웨어, 11-22 수업내용 + 부가적인 내용

간지뽕빨리턴님

이 글의 목차

    반응형
      오픈소프트웨어

    [ "복습" ]

    깃(Git) - (분산 버전(이력) 관리 시스템)

    버전이란 ? [기초적인 것을 기억하고 있는지?] 

    의미 있는 파일의 변화 : 기능개선, 버그 수정, 커스텀마이징 등

     

    로컬 VCS  중앙집중식 VCS 분산 VCS

    - 자세한 내용은 이전의 글을 참고

     

     

    Git 기본 사용법

     

     

    출처 : QoonTree DEV

     

    Branch

    branch - 스냅샷의 포인터 -> 커밋(commit)을 가르킴

    - on branch master - 현재 브랜치(branch)를 master라고 함

    - HEAD는 단 하나!의 브랜치저격한다

    - git의 강력한 기능, 다른 것과 구별되는 것

    - 브랜치 작업 내용 'MERGE' 과정을 거쳐 메인 작업 통합 가능

     

    첫 init 시  프로젝트의 working directory의 파일들을 트랙킹 하고 있지 않다는 것이다.

     

    Git status

    Untracked : git이 File을 추적하고 있지 않은 상태 [적색표시]

     

    modified :  git이 추적하고 있고 commit 됐을 때 스냅샷과 비교시 수정 된 상태 [적색표시]

     

    unmodified : git이 추적하고 있고 수정되지 않은 파일 [녹색표시]

    Tracked [관리대상][Unmodified, Modified, Staged]

     

    Untracked - 관리대상 아님

     

     

    출처 : neon

     

    Git 저장소 만들기 [ 2가지 ]

     

    1. 기존 디렉토리를 Git 저장소로 만들기 ( 현재 작업 중인 디렉토리 대상 )

    - 프로젝트 디렉토리로 이동하여 다음 명령 실행

    $Git init [ 해당 디렉토리를 깃(Git) 관리폴더로 만들겠다. ]

    - 아직 프로젝트 디렉토리의 어떤 파일도 버전 관리가 시작되지 않았음

    $git status [ git의 현재 상태 ]

    버전 관리 할 파일을 git 명령으로 추가하고 커밋해야 관리가 시작됨

    repository [ 저장소 ]

     

    $git add *.c

    $git add read.txt

    $git commit -m "first version" [저장] - 어떤 상태에 저장을 하는지 ? 바뀐것이 무엇이지? 일종의 꼬릿표

    $git commit -am [설명] - add와 커밋이 동시에 가능

    [master (root-commit) 해쉬값"너무 길어 앞 7자리만 표시"] "넣은 데이터"

     

    2. 기존 저장소를 복사 [ clone ]하기 ( 서버 등 다른 컴퓨터 프로젝트 복사 )

    - 서버 등 다른 컴퓨터의 프로젝트를 로컬 컴퓨터로 복사

    - 기존 저장소를 복사해 올 디렉토리로 이동 후 다음 명령 실행

    $git clone [url]  - userhome 디렉토리에서 다음 명령 실행

    $git clone [url] 내가 원하는 이름 - 내가 원하는 디렉토리로 저장 할 수 있음

     

    워킹 디렉토리의 반복 [ 깃은 이런식이구나 라고 이해해야한다. ]

    출처 : DEV

     

     

    출처 : overflow

    $git log [ Git의 로그 내역을 볼 수 있다. ] 시간과 사용자 계정 해쉬값이 나온다 ]

     

     

    용어 정리 한번 더 기억해보자

    저장소 ( Repository )

    - 프로젝트 현재 버전, 변경 이력등의 정보 저장하는 곳

    가져오기 ( Import )

    - 버전 관리되고 있지 않은 로컬 디렉토리의 파일 첫 저장소에 복사

    체크 아웃 ( Check Out )

    - 저장소 파일 가져옴

    체크 인 ( Check In, commit )

    - 체크아웃한 파일의 수정이 끝난 경우 저장소 새로운 버전 갱신 작업

    - 갱신된 것이 있다면 충돌 알림, diff 도구 이용, commit 과정

     

     

    브랜치 새로 만들기

    $git branch [이름] - 브랜치를 이동시키면 포인터 HEAD는 [이름]을 지목

    $git checkout [ 이름 ] -> $git status  표시된 내용을 보면 [이름]으로 변경됨

    $git checkout master

    $git branch [목록과 현재 어디있는지 표시한다]

    $git branch -D [branch 명] 브랜치 삭제 (현재 브랜치 아닌 것만 삭제

    $git branch -v 브랜치마다 마지막 커밋 메세지 출력

    - master가 아닌 당시에 했던 내용들은 안보임

     

    Merge