Git


Gitとは?


リヌストワルスが開発した
分散バージョン管理システム
コンピュータファイルの変更を追跡および管理します.

バージョン管理が必要


複数のユーザと一緒にプロジェクトを管理するとします.
1つのファイルが複数の変更ファイルを生成することもあります.
ファイルの各バージョンを個別にコピーおよび保存するたびに、
仕事の複雑さは向上するしかない.
したがって、各変更点をバージョンとして作成し、リポジトリに履歴を保存できます.
ああ管理する

CLI / GUI

CLI(Command-line interface)グラフィックユーザインタフェース(GUI)も提供される.
その反対は成立しない.CLIの方式で熟知して使用します.

Gitbashとは?


Windowsまたは他のOSでLinuxまたはUnixコマンドを使用できるデバイス
Gitbash環境では、gitをcommandで制御します.

Git状態の基本用語



  • Repository
    リポジトリ
    履歴、ラベル、ブランチに基づいてバージョンを保存します.
    オペレータが変更したすべての履歴を表示できます.

  • Working Tree
    ワークスペース

  • Staging Area
    コミットの準備

  • Gitの3つの状態
  • Modifiedは、変更されたファイルがローカル・データベースにコミットされていないことを示します.
  • Staged現在変更されているファイルをすぐに提出することを示します
  • Committedこれは、データがローカル・データベースに安全に格納されていることを意味する.

  • Commit
    ローカル・データベースに安全に格納されます.

  • Head
    仕事中のBranch

  • Branch
    ブレークポイントを作成し、コードを独立して変更するモデルです.

  • Merge
    他のブランチの内容を現在のブランチにインポートしてマージ
  • Gitデフォルトコマンド

    $ pwd 
    //현재 내 경로 확인
    
    $ cd documents 
    //경로이동 - documents로 들어옴 
    
    $ mkdir newDir 
    //newDir라는 폴더 생성 
    
    $ cd newDir 
    //경로이동 - newDir로 이동
    
    $ git
    //내가 쓸 수 있는 git 명령어가 출력됨
    
    $ dir 
    //현재 경로에 존재하는 directory 확인
    
    $ ls
    //현재 경로에 존재하는 list 확인
    $ ls -a
    //숨겨진 list까지 
    $ ls -al
    //숨겨진 list의 상태까지
    

    Gitバージョンの管理開始(Start a Work Area)


    方式は大きく二つに分かれている.
    1. clone
    $ git clone 복사해둔 repository주소  
    $ ls 
    //파일 중에 .git이 생성된 것을 확인할 수 있다. 
    2. init
    - 개행문자 (Newline) 설정
    window ) $ git config --global core.autocrlf true
    mac ) $ git config --global core.autocrlf input
    
    - 사용자 정보등록
    $ git config --global user.name 내이름
    $ git config --global user.email 내이메일
    $ git init
    //버전관리시작, init방식으로 진행해보는 경우 
    
    $ git config --global user.name 내이름
    //버전관리를 하는 나에 대한 정보 알려주기 (환경설정)
    //이름
    
    $ git config --global user.email 내이메일
    //버전관리를 하는 나에 대한 정보 알려주기 (환경설정)
    //깃 이메일주소 
    
    $ ls -al
    //현재 디렉토리의 파일 상태를 확인
    // .git 파일이 생겼음을 확인할 수 있다
    
    $ vim newfile.md
    //newfile 이라는 파일을 편집(생성)하겠다
    
    vim 환경)
    i insert
    esc normal mode
    shift : 가장 하단으로 커서
    :wq 저장 후 나옴
    
    $ cat newfile.md
    //vim환경에서 적은 내용 출력
    
    $ git status
    //현재의 파일 상태 확인
    
    $ git add newfile.md
    //newfile을 onstage 즉, 추적을 시작시킨다
    
    $ git status
    //현재의 파일 상태 재확인, 잘 onstage되었는지
    
    $ git commit
    
    vim commit환경)
    commit convention
    1.タイトルcommitのタイトルは、commitを記述する句によって完成する
    2.修正した内容を詳しく説明する
    見出しに接頭辞を付ける
    タイトルを記入するときは必ず接頭辞をつけてください
    -feat:機能開発関連
    -fix:エラー修正またはエラー修正
    -docs:ドキュメント化操作
    -test:test関連
    -conf:優先パラメータに関連
    -build:構築に関連
    -ci:連続統合に関連
    예시)
    	feat : creat a signin.py
        creat a signin.py for signin
    
    $ git log
    //커밋 히스토리 확인
    $ git log -p
    // 가장 최근의 커밋 내용과 이전 커밋의 내용 간 차이점 출력
    $ git log diff 커밋id
    //커밋id 이전의 커밋 내역만 출력
    $ git log diff 커밋id01..커밋id02
    //커밋id01과 커밋id02 사이의 소스 상의 차이점 출력

    リセット解除


    Reset
    $ git reset --hard HEAD~n
    //현재버전(HEAD)에서 n번째 이전 버전으로 되돌리기
    
    $ git reset --hard ORIG_HEAD
    //직전 되돌리기 이전으로 원상복귀