본문 바로가기
GitHub

[Git] Git 개념

by IsBerry 2019. 3. 3.
반응형


Git 개념

 

 



Git 이란?

 : 소스코드를 효과적으로 관리하기 위해 개발된 분산형 버전 관리 시스템


Git을 사용하는 목적

 1. version - 버전관리

 2. backup

 3. collaborates


Git CLI(CommandLine)의 장점

 : 익숙해지면 복잡한 GUI없이 간편하게 사용할 수 있다.

   명령어의 특성상 처리해야할 명령어를 한번에 명령해서 자동화할 수 있다.

   GUI를 사용할 수 없는 서버 환경에서도 사용할 수 있다.


Working tree : 버전으로 만들어지기 전 단계

Staging Area : 버전으로 저장하기위한 파일 

Repository : 버전이 저장되어 있는 곳 (.git)


명령어

- git init  : 버전관리 시작하기 (최초 지역 저장소 생성시)

EX) git init . : 현재 디렉토리에서 버전관리 시작하기 (.git폴더 생성됨)

     - git status : 깃의 상태 확인

     - git add 파일명 : workingtree에 있는 것을 Staging Area에 올림

                   . : 현재파일 전부 추가 

     - git commit : 기본 에디터를 사용해서 Staging Area에 올린 파일을 Repository로 저장 (버전 생성)

                       -m "커밋내용" : 에디터에 들어가지 않고 바로 사용할 수 있음

                       -am : add와 커밋을 동시에 할 수 있음 (단, 최초 1회는 add해줘야함)

     - git log : 버전 확인

         --stat : 어떤 파일들이 commit되어있는지 목록을 확인할 수 있다

         -p : 

     - git diff : 마지막 버전과 Working tree와의 차이점을 알 수 있다

     - git reset

             --hard 커밋ID : 해당 커밋ID버전으로 리셋함. (hard는 working tree를 포함하여 다 지움)

     - git checkout 커밋ID : 해당 버전 시점으로 돌아가서 탐색함

             master : 최신 상태로 돌아감 

     - git revert 커밋Id : 버전을 삭제하지 않으면서, 되돌리는 방법

       * revert는 돌아가려는 시점 바로 위의 커밋Id를 사용해야함

          revert는 커밋Id이전의 변화만 가져오는것이기 때문에 한번에 여러개를 건너가면 충돌이 발생함.

     

     - git config --global user.name "이름" : 전역 사용자명 설정

                                  user.email "이메일" : 전역 이메일 설정

                                  --list : 전역 설정 정보 조회


- git remote add [origin] "Git주소" : 원격저장소와 연결 

     - git remote : 원격저장소 연결 확인

                     -v : 원격저장소 연결 확인 (주소까지)

     - git push : 원격저장소로 보내기

     - git push --set-upstream origin [master] : push 설정

     

- git clone "Git주소" [경로] : 원격저장소로 부터 복제하여 지역 저장소 생성 

     - git pull : 원격저장소로 부터 update

      



* Pull Fetch 차이점

   - Fetch : 원격 저장소 -> 로컬 저장소로 가져옴. (현재 작업중인 소스들을 변경하는 Merge 작업을 하지 않는다)

   - Pull : 원격 저장소 -> 로컬 저장소로 가져옴 (현재 작업중인 소스들의 Merge작업까지 통합하여 수행함)


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

*추가로 공부할 내용

      .gitignore

      branch

      tag

      merge : 2개의 branch를 하나의 branch로 병합

     

반응형