Git 기초

황지웅·2021년 12월 30일
0

Git

목록 보기
1/2

chpather -버전 관리 시스템


Git intro

1. 버전관리란?
각 버전 별로 변경된 이력들을 저장하는 작업이고, 이전버전으로 되돌아가야 경우 유용하며, 어떤사항이 변경되었는지 코멘트를 남겨 변경사항을 쉽게 확인할 수 있다. 그러므로 백업과 협업에 아주 유용하다.


2. git이란
git이란 개발자의 코드를 효율적으로 관리하기 위해 개발된 '분산형 버전 관리 시스템' 이다.


3.github란?
Github란 Git Repository를 관리할 수 있는 클라우드 기반서비스이다. 쉽게 말 하면 git은 커피고 github는 카페와 같다


4.Git repositody란?
내가 작업하는 소스 코드 폴더가 버전 관리를 받게 하기 위해서는 내 폴더를 Git의 관리 아래에 두어야하고,
Git으로 관리되는 폴더를 Git repository 라고 합니다.
Git repository 는 Remote Repository와 Local Repository 두 종류의 저장소를 제공한다.

  • 다른 사람이 Remote Repository에 올려 놓은 소스 코드를 내 Local Repository 로 가지고 올 수도 있다.
  • 2.작업할 때는 Local Repository에서 할 수 있고 내가 작업한 코드를 공유하려면 Remote Repository에 업로드해 여러 사람이 함께 공유할 수 있다

chpater - Git 설치/환경설정


Git 설치

터미널에 git 입력

Git이용에 필요한 환경설정

1.사용자 정보 설정

  • 사용자 정보 입력
git config --global user.name "나의 사용자 이름"
git config --global user.email "내 이메일 주소"

터미널에 입력한 이름과 주소는 git 커밋내역에 등록됨


2.에디터 설정

  • Git에서 커밋 메시지를 기록할 때, 특히 merge commit 확인 메시지가 나올 때 텍스트 에디터가 열린다
  • Git에서 사용할 에디터 입력
git config --global core.editor nano

3.SS키 설정

  • SSH?
    ssh는 Secure shell의 줄임말로, 보안이 강화된 shell 접속을 뜻한다.
    CLI환경에서 다른 pc에 접속하거나(clone) 요청할 때 사용하며,
    ssh키는 두 개의 키가 서로 대칭이 되지 않는 형태로 존재하며 이를 통해 사용자를 인증한다.
  • SSH키 생성
    • 1. ssh-keygen
      명령어는 경로 ~/.ssh./에 두 파일 id_rsa와 id_rsa.pub 을 생성한다.
      이 두파일은 SSH키 페어라고 하고
      이중 id_rsa.pub은 누구에게나 공개해도 되는 공개키 (publick Key),
      id_rsa는 개인키(secret,privat key)이다
    • 2.공개키(publick key) 복사
      cat ~/.ssh/id_rsa.pub
      터미널에 출력된 키를 복사
    • 3.Github에 공개키 등록

chapter -Git


가져와서 작업하기

0. 전체적 흐름

1. Fork - 내 원격 저장소로 가져오기
(remote Repsitory->My remote Repository)

2. clone -내 컴퓨터저장소로 가져오기
(My remote Repositoey->local Repository)
git clone (Repository address/ssh)

3. add -commit할수있게 만들어주기
1)커밋전 Local Repository에 변경된 파일들 확인하기
git status//파일들의 상태확인가능

  • unmodified : 기존에 clone했던 파일을 수정하지 않은 상태
  • staged : commit이 가능한상태
    • Modified : 기존에 clone했던 파일을 수정한 상태

2)commit가능하게 add해주기
git add 파일이름
commit할수있게 staging area로 옮겨줌
터미널 화면에 변경없음
git add .
unstaged 상태인 모든파일 한번에 추가가능(그래서 조심해야함)

3)작업한 코드를 싹 밀어버리고 싶을때(commit전)
git restore 파일이름
변경사항을 폐기하는 명령어
처음 clone상태로 돌려줌

4. commit- 로컬저장소로 보내주기
(staging area -> local Repository)
1)Git commit -m ‘메시지’
m옵션을 통해 커밋할 내용의 코멘트 작성가능
2)git reset HEAD^
로컬에만 커밋되어있다면 reset명령어를 통해서 commit을 취소할 수 있다
HEAD^를통해 하나만 커밋 취소시킴
3)- git log
남긴 commit들이 잘 기록되었는지 확인하기(터미널에서)/종료는 q
5. push - 내 원격 저장소로 올리기(local -> remote)

  • git push origin branch
  • git push origin main
  • git push pair dev
    6. pull Request
  • 내가 제안한 코드 변경사항에 대해 반영 여부를 요청
  • 변경 사항에 대해서 함께 작업하는 이들에게 알리는 것 (PR)
  • 내 remote Repository에 push하면 깃허브 웹사이트상의 해당 remote repository에 compare&pull request라는 버튼을 확인할 수 있음

함께 만든 git 프로젝트 올리기

1.내 디렉토리를 git의 관리하(git repository로)에 들어가게 만들기
git init (현재위치가 작업중인 디렉토리)
1)내가 직접 만든 디렉토리를 git의 관리하(git repository)에 들어가게 만들기
2)새로운 repository를 초기화
3)local repository가 생성됨

2. 내 디렉토리를 local repositorty를 remote repository에 연결
git remote add origin <repository>주소
1) local repository를 remote repository와 연결
2) 터미널 변화 x
3)주소는

3. 내 local repositorty와 상대방의 repository를 연결해주기
git remote add <상대방이름> <상대방remoteRepository주소>

  • 상대방의 remote repository와 연결해 github repository를 함께 공유할 수 있다
  • 터미널 변화 x

4. 현재 local repository와 연결된 remote 모든 repositroey 목록확인
git remote -v

  • 현재의 local repository와 연결된 모든 remote repsotiry 목록 확인가능

5. 상대방이 작업해 commit해놓은 코드를 git pull 로 받아오기/병합
gut pull <상대방이름> <branch>(git pull pair master)

  • 명령어를 통해 상대방의 remote repository에 있는 작업 내용을 받아올 수 있다
  • 받아온 내용은 자동 병합 된다.
  • 나와 상대방이 동일한 라인을 수정한경우 충돌이생겨 병합에 실패한다
    • merge conflict가 발생해 automatic merge에 실패했다고 터미널이 알려줌
    • git status를 통해 어떤 파일이 충돌하고 있는지 확인할 수 있다
    • Accept Current Change 수정방법
    • Accept Incoming Change 수정방법
    • Accept Both Changes 수정방법
    • 수정후 병합 다시공부후 작성

0개의 댓글