Git - 버전 관리

전주은·2022년 12월 17일
0
post-thumbnail

Git

  • 버전관리 시스템의 종류 중 하나
  • 버전 관리: 여러 파일을 하나의 버전으로 묶어 관리하는 것

버전 관리 시스템의 종류

  1. 클라이언트 - 서버 모델
    • 하나의 중앙 서버로 여러 클라이언트들이 각자 필요한 것만 가져와서 작업을 하고 다시 중앙 서버로 통합하는 방식 (ex) CVS, SVN
  2. 분산모델
    • 하나의 중아 서버가 존재하지만 여러 클라이언트들은 각자의 컴퓨터 저장소에 전체 사본을 가지고 작업하는 방식 (ex) Git

git 다운로드

  • https://git-scm.com 에 들어가서,
  • Download for Windows > 64-bit Git for Windows Setup. 클릭 후 설치

git 버전 확인

  • git bash를 실행
git --version
  • 윈도우 터미널 명령어
    - ls(dir): 현재 디렉토리 내의 파일 및 디렉토리를 표시
    - cd: 다른 디렉토리로 이동
    - cls(ctrl + L): 화면 클리어

git 기본 명령어

  1. 프로젝트 디렉토리 내에 로컬 저장소를 생성

    git init
    //.git  숨긴 폴더 생성 확인하고 생겼다면 정상!!
  2. config 명령어 사용

    // 현재 설정되있 있는 이름 확인하기
    git config user.name
    
    // 이름 설정하기(local, global or system)
    git config --global user.name "je"		
    
    // 현재 설정되있 있는 이메일 확인하기
    git config user.email 
    
    // 이메일 설정하기
     git config --global user.email "jje320594@gmail.com"
  3. 파일 상태 확인하기

    git status
  4. 진행 히스토리 확인하기

    git log
  5. 파일을 선택하기 -> stage에 올림

    git add 파일이름
    // 파일을 한꺼번에 선택할땐 . 을 사용합니다.
    git add .
  6. 하나의 버전으로 만들기

    git commit -m "메시지 입력하는 곳"
    //선택된 여러 파일을 하나의 버전으로 만들기
    git commit -m "메시지 입력하는 곳"
  7. 참고)

    //기본 브랜치 변경
    git config --global init.defaultBranch main   
    // working directory와 staging area 사이의 차이를 확인하기 위한 명령어
    git diff
    
    //(HEAD -> main): 내가 작업중인 버전
    //(origin/main): github에 올라가있는 버전
    git log
    

깃허브 (git hub)

https://github.com/

  • git으로 버전 관리한 코드를 업로드 할 수 있는 클라우드 서비스
  • 단순히 저장만 하는 것이 아니라 유저들과 함께 코드를 공유하고 온라인으로 하나의 프로젝트를 개발할 수 있게 해줌

프로젝트 시작할 때 순서

  1. 프로젝트 폴더를 만들기

  2. cmd로 해당 프로젝트 폴더로 들어가기

  3. git init -> git 이 관리하기 시작

  4. git add . -> stage에 작업물을 올린다.

  5. git commit -m "메시지 입력하는 곳" -> 버전 생성

  6. 로컬 저장소에 github 저장소 주소 설정

    // 로컬 저장소에(내 컴퓨터 git) github 저장소 주소를 설정
        git remote add origin https://github.com/je1113/test.git
        origin: original 주소라는 말 (관례)
    
    // 로컬 저장소에(내 컴퓨터 git) github 저장소 주소를 변경
        git remote set-url origin 변경될 주소
    
    // 로컬 저장소에 설정한 주소를 확인
        git remote -v
    
    // 로컬 저장소에 설정한 주소 삭제
        git remote rm origin
  7. git push -u origin main(줄기이름) -> github에 버전 저장

참고)fatal: detected dubious ownership in repository at '경로'오류 해결방법

git config --global --add safe.directory 경로

클론: 콜라보 후에 맨처음 하는것

  1. github repository에 접속하여 파일을 복제함
    git clone 주소
    (ex) git clone https://github.com/je1113/test.git

  2. 가져오기

    • 협업시 github에 변경된 내용을 가져옴
    • remote를 등록해야함
    git remote add je https://github.com/githubID/프로젝트명.git
    1. git pull
    • ❗❗내것이 바로 바뀔 수 있기 때문에 주의하기❗❗
    1. git fetch
    • 원격 저장소에 변경사항이 있는지 확인만 하고, 변경된 데이터를 로컬 Git에 실제로 가져오지는 않는다.
    • 원격저장소에 있는 프로젝트의 변경사항을 가져오기만 한 후 병합은 따로 다른 사람이 수정한 부분을 확인하고 병합할 수 있는 장점이 있음
    • git diff ...origin 이용해 보면 차이 알 수 있음
  3. 버전 되돌리기

    1. reset
      • 돌아갈 버전 이후는 모두 지우기
      • 이후 버전으로 돌아갈 수 없음
        git reset (헥사코드번호) --hard
    2. revert
      • 돌아갈 버전 아니니 돌아갈 버전을 복사해서 현재 버전 뒤로 이동
      • reset 처럼 버전 이후가 삭제된 것이 아닌 새 버전이 생김
        git revert (헥사코드번호)

(참고) 리셋이후에 push가 안되는 이유

해결방법 1. 누군가 파일을 올렸는데 덮어씌우면 안되니까 git pull 하고 난 후에 git push 시도하기
해결방법 2. gitignore readme.md때문에 ==> git push ... + main(줄기이름)

0개의 댓글