Git/Github 기초

SongE·2022년 4월 1일
2

(KDT FE2) Study Note 🧾

목록 보기
2/10
post-thumbnail

1. 개요(Git, GitHub)

Git(깃)은 컴퓨터 파일의 변경사항을 추적하고 여러 사용자들 간에 해당 파일 작업을 조율하기 위한 대표적인 버전 관리 시스템(VCS)입니다.

2. Git의 목적

Version / Backup / Collaborate

2.1 git의 목적 1 - 버전관리


  • 작업이 많아질 수록 파일들간의 수정사항들은 한눈에 보기 어려워진다.
  • git은 각각의 수정사항을 버전으로 만들고 버전간의 차이점을 보여줄 수 있다.
  • 여러개의 파일을 수정한 버전도 그룹핑해서 차이점을 보여줄 수 있다.
  • 수정한 내용을 간략하게 버전의 제목에 붙여서 한눈에 보기 유용하게 해준다.

2.2 git의 목적 2 - 백업


  • 백업이란 지역저장소에 저장된 파일을 원격저장소에 저장해두는 것이다.
  • 백업을 할 수 있는 원격저장소 중에는 [github.com]라는 사이트가 있다.
  • 컴퓨터는 언제 고장날지 모르고 언젠가 고장이 나기 때문에 백업은 굉장히 중요한 작업이다.

2.3 git의 목적 3 -협업


  • My와 Other은 GitHub에 Push와 Pull을 하면서 같은 내용을 공유와 수정을 할 수 있다.
  • 공유와 수정을 하는 과정에서 내용의 충돌이 일어난다면 git은 교통정리 역할까지 해줄 수 있다.
  • 이것이 바로 git이 제공하는 협업의 기능이다.

3. Git의 종류

세상에는 여러가지 git프로그램이 있다.

  • GithubDesktop - 간단해서 배우기 좋지만 기능이 적다. 고급 사용자가 되면 답답할 수 있음.
  • TortoiseGit - 윈도우 탐색기에 기생해서 사용되는 프로그램. (윈도우에서만 사용가능)
  • Git - 명령어를 통해서 git을 제어하는 프로그램. 이것을 기반으로 다른 프로그램들이 만들어진 것.

4. 스타벅스 예제 GitHub 업로드(Push)

VS코드 > 터미널 > 새 터미널 or 파란색 상태바 위로 끌어올리기

$ git --version # git 설치 여부 확인
$ git init # 현재 프로젝트에서 변경 사항 추적(버전관리)을 시작

--- 최초 한번만 작성 ---
$ git config --global core.autocrlf true # 개행 문자 (Newline) 설정
$ git config --global user.name '깃허브이름' # 사용자 정보
$ git config --global user.email '깃허브메일' # 커밋(버전 생성)을 위한 정보 등록
$ git config --global --list # 구성 확인 
$ git status # 상태 확인
> 빨간색 메세지
$ git add . # 모든 파일의 변경사항을 추적하도록 지정
$ git status 
> 초록색 메세지
$ git commit -m '버전 이름' # 메세지(-m)와 함께 버전을 생성.
$ git log # 커밋 확인

--- gitHub페이지로 이동 ---
사용자 메뉴 > your repositories
new > 제목 입력 > Create # 저장소 생성
원격 주소 복사

--- VS 코드 ---
$ git remote add origin 주소 붙여넣기 # origin이란 별칭으로 원격 저장소를 연결.
$ git push origin master # origin이란 별칭의 원격 저장소로 버전 내역 전송. 

5. 수정사항 버전 생성(Commit)

--- VS코드에서 수정사항 저장 ---
$ git status 
> 빨간색 modified: ~~~
$ git add .
$ git status 
> 초록색 modified: ~~~
$ git commit -m '벳지 이미지 수정'
$ git log

6. 로그인 브랜치(Branch)

$ git branch 
- master
$ git branch -a
- master
   remotes/origin/master
$ git branch signin
$ git branch
- master
   signin
$ git switch signin
$ git branch
- master
   signin

7. 로그인 브랜치 병합(Pull Request)

$ git status
> 빨간색
$ git add .
$ git status 
> 초록색
$ git commit -m '로그인 페이지 완성'
$ git status
> nothing to commit, working tree clean # 현재 프로젝트가 가장 최신의 버전으로 유지가 된 상태
$ git push origin signin

--- github로 이동 ---
Pull requests > compare: signin으로 클릭 >
Create pull request 클릭 > 내용 작성 >
Create pull request > (Open) Confirm merge > (Merged) 

8. 프로젝트 복제(Clone)

깃허브 로그인 > your repositories > 원하는 저장소 선택 > code 클릭 > 주소 복사 > VS코드 열기 
> cd desk 탭 엔터 > dir로 폴더 확인 > git clone 주소붙여넣기 > dir 폴더 확인(복제됨) 

ctrl + shift + p > code 검색 
> Shell command: Install 'code' command in PATH 라고 안나오면 계속 진행 나오면 설치 후 재부팅 
> cd desk 탭 > cd 복제폴더 
> 1. code . : 새창에 VS코드 열림 or 2. code . -r : 현재창에 VS코드 열림  

9. 연습-버전 되돌리기(Reset)

폴더 생성 > VS코드로 열기 > 내용 작성

$ git init
$ git status
> 빨간색
$ git add .
$ git status
> 초록색
$ git commit -m '커밋 내용1'
$ git log
> 커밋 내용1 

--- 수정 내용 작성 ---
$ git status
> 빨간색
$ git add .
$ git status
> 초록색
$ git commit -m '커밋 내용2'
$ git log
> 커밋 내용2
> 커밋 내용1

--- 수정 내용 작성 ---
$ git status
> 빨간색
$ git add .
$ git status
> 초록색
$ git commit -m '커밋 내용3'
$ git log
> 커밋 내용3
> 커밋 내용2
> 커밋 내용1

--- 버전 되돌리기 ---
$ git reset --hard HEAD~1 # 최신 버전에서 뒤로 한 버전 되돌리기
$ git log
> 커밋 내용2
> 커밋 내용1
$ git reset --hard ORIG_HEAD # 기존의 헤드로 되돌리기
$ git log
> 커밋 내용3
> 커밋 내용2
> 커밋 내용1
$ git reset --hard HEAD~2 # 최신 버전에서 뒤로 두 버전 되돌리기
$ git log
> 커밋 내용1
$ git reset --hard ORIG_HEAD
$ git branch purple
$ git branch # 잘 만들어졌는지 확인
$ git switch purple

--- 내용 작성 ---
$ git status
>빨간색
$ git add .
$ git commit -m 'puple/1'
$ git log
$ git switch master

--- 수정 내용 작성 ---
$ git add .
$ git commit -m '커밋 내용4'

--- 깃허브에 저장소 생성 > 주소 복사 ---
$ git remote add origin 주소 붙여넣기
$ git push origin master
$ git switch purple
$ git push origin purple

10. 연습-다른 환경에서 시작하기

깃허브에서 저장소 주소 복사 > VS코드 cd로 원하는 위치 이동

$ git clone 주소 붙여넣기
$ code . -r
$ git branch -r
> origin/master
> origin/purple
$ git switch -t origin/purple
$ git branch
> master
> purple

--- < 브랜치 지우는법 > ---
$ git switch master
$ git branch -d purple
$ git branch
> master

--- < 브랜치 생성과 동시에 이동하는 법 > ---
$ git switch -c yellow 

11. 연습-충돌(Conflict), 로컬 병합(Merge)

$ git pull origin master # 원격저장소에서 로컬저장소로 가져옴
충돌 영역 보여줌 > 내용 수정 
$ git add .
$ git commit -m 'ABYX'
$ git push origin master 
profile
front-end developer dreamer

0개의 댓글