9주차 월 1016 :: newb

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 9주차 월 1016
    광주인력개발원 일일포스팅(메모장) 2023. 10. 16. 17:04
    728x90
    반응형

    ※ 주의 

    이 게시물은 수업 시간 중에 작성했는데

    스샷을 찍으면서 하기에는 진도가 빨라 놓치게 되어 스샷이 없습니당.

    그리고 난잡합니다. ㅎㅎ

     

    # 잡담

    포트폴리오

    1. 블로그

    2. GitHub

    1) git 프로그램 설치하기

       +구글에 git 검색

       + git scm 에 접속하여 64비트 다운로드

    2) github.com 가입하기

     

     

    ★복습

    ★학습목표

    1. GIT 사용

       + CLI

       + GUI

     

    ★학습

    1. GIT

    1) git을 왜 사용하는가?

    파일 관리에서 파일 이력을 관리할 수 있는 시스템

    -  코드 기록추적

    -  팀 단위의 협업

    -  누가 어떤 내용을 변경햇는지 확인

     

    + 버전 관리 시스템 (Version Control System)

    변화를 시간에 따라 기록하고 특정 시점의 버전을 다시 꺼내올 수 있는 시스템

    파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구 가능

     

    - 분산 버전 관리

      각자 컴퓨터에서(작업물은 내 컴퓨터에 저장) 하나의 서버에 올려서 결합하여 다운로드

    2) GIT의 3가지 구성요소

    + 저장소

      -모든 변경사항을 추적하는 "컨테이너"

    + 스테이징 영역 / 인덱스

      - 커밋이 준비되는 공간

      - 작업 디렉토리의 파일과 저장소의 파일 비교

    + 작업 디렉토리 / 작업 트리

      - 작업 중인 공간

     

    REPOSITORTY                      INDEX                               WORK TREE

                             <<< COMMIT                 << REGISTER

     

    3) GIT의 세가지 상태

    + Commited

      - 데이터가 로컬에 안전하게 저장된 상태

    + staged

      - 수정된 데이터를 저장할 것이라고 표시한 상태

    + Modified

      - 수정된 데이터가 로컬에 저장되지 않은 상태

     

    2. GIT 사용해보기

     

    +Git 최초 설정 ( 각자 컴퓨터에서 설정 / 사용자명 + 이메일주소 가능하다면 중복은 피하는게 좋음)

     

    이렇게 생긴 .git 이 저장소 역할을 하게 된다. 

    *(관리에 주의)

     작업공간에 저장소도 같이 있지만 완전히 다른 영역

     

    사용자 정보

    git config --global user.name ( 사용자명 )

    git config --global user.email ( 이메일주소 )

     

    설정 확인   

    git config --list (  사용자 정보를 볼 수 있다. )

     

    저장소 생성

    cd git

    mkdir mylibgit

    cd mylibgit

    git init

     

    설정이 저장된 파일

    .gitconfig

     

    ★ 그 외 Git Bash (Linux) 명령어

    화면지우기 -clear

    현재위치 - pwd

    파일 목록 - is 또는 is -al

    tap - 자동입력

    방향키 위 아래 - 전에 입력했던 코드? 보기

    git add .- 파일등록 (무대 stage)

    git commit - 저장하기

    git commit - m "메시지" - 저장하기 2

    -편집기 (vi) - 메시지 작성

     나가기 - esc > :q > enter

    수정하기 - vi 파일명

                      - a 또는 i 누름

                          esc > :wq > enter

    cat 파일의 내용을 살짝 볼 수 있다.

     

    git status - 파일의 저장상태 확인하기

    - 마지막으로 add 명령을 실행한 상태까지만 Staged 이고

      이후 수정된 내용은 Modified 상태

     

    파일의 상태를 간단한 정보로만 확인하기

    git status –s 또는 git status --short

     

    파일 새로 추적하기 (Untracked → Tracked / Staged)

    git add README

     

    어떤 내용이 변경되었는지 확인 (Working Directory ↔︎ Staging Area)

    git diff

     

    어떤 내용이 변경되었는지 확인 (Staging Area ↔︎ 저장소)

    git diff --staged

    - 단순히 파일의 변경 사실을 확인하려면 git status

    - 어떤 라인을 수정했는지 등 내용을 확인하려면 git diff

     

    git log - 이전 내역 모두

       - 숫자 : 개수 지정

       -p       : 상세보기 

       --stat  : 통계보기

    git log --pretty=oneline  헌줄만 보기

    외 short, full, fuller

     

    Unstaged 상태의 파일도 모두 커밋

    git commit -a -m "auto add"

    - 추가하지 말아야 할 변경사항도 저장될 수 있으니 주의해서 사용

     

    tracked파일 : 이미 스냅샷에 포함돼 있는 파일

      - Unmodified(수정하지 않음) / Modified(수정함) / Staged(저장 대상)

     

    변경

    git mv

     

    삭제

    git rm

     

    삭제 (3) - Staged 상태 이후 내용 변경 (삭제 불가)

    git rm -f 

    -f 옵션으로 강제 삭제

    저장소에 저장되지 않은 데이터가 삭제되면 복구할 수 없기 때문에

    최소한의 안전장치 개념으로 적용

     

    저장소 복제 - git Clone (Git 저장소를 복사하는 기능)

    다른 VCS 와의 차이점은 프로젝트 모든 히스토리를 받아온다는 것

    git clone [url]

    git clone [url] 폴더명

    ※내 저장소랑 겹치지 않게 주의할 것

     

     

    history 출력 형식----------------------------------------------------------------

    commit <해시> (HEAD -> <브랜치>, <원격 브랜치>, <원격 HEAD>)

    Author: <작성자 이름> <작성자 이메일>

    Date: <커밋 날짜>

             <커밋 메시지>

    diff --git a/<변경된 파일> b/<변경된 파일>

    index <이전 파일 해시>..<새 파일 해시> <파일 모드>

    --- a/<변경된 파일>

    +++ b/<변경된 파일>

    @@ -<시작 라인>,<삭제된 라인>+<추가된 라인> @@ <변경 영역>

    <변경된 내용>

    --------------------------------------------------------------------------------------

     

    커밋 히스토리

    출력 형식 사용자 지정

    git log --pretty=format:"%h - %an, %ar : %s"

     

    옵션 설명 옵션 설명
    %H 커밋 해시 %h 짧은 길이 커밋 해시
    %T 트리 해시 %t 짧은 길이 트리 해시
    %P 부모 해시 %p 짧은 길이 부모 해시
    %an 작성자 이름 %cn 커미터 이름
    %ae 작성자 이메일 %ce 커미터 이메일
    %ad 작성자 시각 %cd 커미터 시각
    %ar 작성자 상대 시각 %cr 커미터 상대적 시각
    %s 커밋 메시지    

    - 커밋 해시 : 커밋과 관련된 모든 내용을 포함하는 식별자

    - 트리 해시 : 파일 및 폴더 구조에 대한 내용을 포함하는 식별자

    - 부모 해시 : 커밋 간의 관계 정보를 포함하는 식별자

     

    git log 의 주요 옵션

    옵션 설명
    -p 각 커밋에 적용된 패치를 보여준다
    --stat 각 커밋에서 수정된 파일의 통계정보를 보여준다
    --shortstat --stat 명령의 결과 중 수정한 파일, 추가된 라인, 삭제된 라인만 보여준다
    --name-only y 커밋 정보중에서 수정된 파일의 목록만 보여준다
    --name-status 수정된 파일의 목록과 추가/수정/삭제 상태를 보여준다
    --abbrev-commit 40자 짜리 SHA-1 체크섬 중 처음 몇 글자만 보여준다
    --relative-date 상대적인 시간을 보여준다 (ex. 2 weeks ago)
    --graph 브랜치와 병합 히스토리 정보를 그래프로 보여준다
    --pretty 지정한 형식으로 보여준다

    주요 로그

    git log --oneline --graph --all

     

    commit

    - git commit -a -m '메시지'

     

    되돌리기

    파일을 빠뜨렸거나 커밋 메시지를 잘못 적었을 때

    1. git commit --amend  (파일 업로드나, 메시지를 빠트렸을 때) (메시지,누락된 파일)

    2,.git reset HEAD 파일 (stage를 unstaged로 할때) (스테이징 취소)

        git reset HEAD^ (commit 내역이 사라져버림) (커밋 삭제)

         ㄴ commit

             5 < HEAD  이 녀석이 사라지고 

             4   < 다음

             3

             2

             1

    reset은 복구x 주의 요망

    3. git checkout -- 파일명 (마지막 커밋 상태로 복구)

     

    리모트 저장소 확인하기

    git remote -v

    (fetch) 받아오기

    (push) 업로드 

     

    project              로컬 저장소                                   원격 저장소

               commit                                  push

    html   >>>>>>>       ltml          >>>>>>>>>>>>>>         html

             <<<<<<<                       <<<<<<<<<<<<<<

               pull                                      fetch

     

    기존 워킹 디렉토리에 새 저장소 추가

    git remote add [단축이름] [url]

     

    브랜치 (Branch) 

    원래 코드와는 상관없이 독립적으로 개발하도록 지원해주는 것

    - 새로운 버전을 출시

    - 새로운 기능을 추가

    - 버그 수정

     

    커밋 내역 끼리의 여결된 모습

    (한쪽에서 쟤를  알고있는 모습, a가 b를 알고 b가 c를 알고있음)

     

    git checkout 파일명 - 파일이

    git branch -v  - 목록보기

    git branch 이름 - 생성하기

     

    이동과 생성

     git checkout -b iss53 (추천)

    또는

    git branch iss53

    git checkout iss53

     

    병합 머지를 할 때는 본체에서 해야함

    git merge (본체에서 병합하고자 하는 파일명)

     

    본체는 그대로 있고 branch 만 수정되어 merge 한다면 빠르게 병합이 가능 

    그 현상을 fast forward 라고 한다.

     

    본체에서 수정이 있고 수정 전 branch 를 합치게 된다면 코드를 만져줘야 한다.

     

    branch 삭제 

    git branch -d 파일명

     

     

    ※확장자 프로그램

    git 검색하여 여러 프로그램중 마음에 드는것을 install 하면  vs코드에서 log 를 볼 수 있음

     

     

    728x90
    반응형

    '광주인력개발원 일일포스팅(메모장)' 카테고리의 다른 글

    9주차 수 1018  (0) 2023.10.18
    9주차 화 1017  (0) 2023.10.17
    8주차 금 1013  (0) 2023.10.14
    8주차 화 1010  (2) 2023.10.10
    7주차 금 1006  (0) 2023.10.10
Designed by Tistory.