개발냥발/FE (FrontEnd)👩🏻‍💻

Git 과 Github 익히기❗

승이버섯 2022. 5. 1. 11:43

👩🏻‍💻

1. Git과 GitHub란?

Git : 버전 관리 시스템.

(쉽게 말해, 원하는 시점마다 깃발을 꽂고(=버전을 만들고), 이들 간에 자유롭게 돌아다닐 수 있다. 내가 만든 버전 뿐만 아니라, 동료가 만든 버전으로 이동할 수 있고, 동료와 내 버전을 비교해서 최신본으로 코드를 업데이트를 할 수 있다. 간단히 말해, 우리가 작업하고 있는 파일들을 원하는 순간으로 다시 돌아갈 수 있게 만들어주는 도구! Git BashCLI 방식(‘git 명령어 -옵션’)으로 쓸 수도 있고, SourceTree라는 GUI 방식으로 쓸 수도 있음. branch가 많을 땐 GUI 방식이 더 유용!)

  ♥ Git에서 이용 가능한 모든 명령어 확인 : https://git-scm.com/docs

  ♥ git 명령어 h : 그 명령어에 대한 설명 확인 가능

 

GitHub : Git으로 버전 관리한 코드를 올릴 수 있는 클라우드 서버.

 

 

2. Git 초기 설정

git 전역 사용자 설정 : GitHub의 닉네임과 이메일 입력

git config --global user.name “닉네임”
git config --global user.email “이메일”

  ★ .gitconfig : Git에 관련된 모든 환경 설정이 저장되는 파일

  ★ git config --list : 모든 설정들 확인 가능

 

OS마다 에디터에서 새로운 줄바꿈을 할 때 들어가는 문자열이 달라지는데, 이는 Git repository를 다양한 OS에서 쓰는 경우, git history 등을 보는 데에 문제가 생김. 그래서 그 문자열을 수정해서 처리하기 위한 속성인 core.autocrlf 설정

git config --global core.autocrlf true (Windows)
git config --global core.autocrlf input (Mac)

 

git의 인증 방식이 ID/비번 로그인 방식에서 토큰 방식으로 바뀌어서, personal token을 생성해야 함. 그래야 push git의 기능들 이용 가능

 

 

3. Git의 Workflow

 Local

     Working Directory : 프로젝트 파일을 수정하는, 작업하는 공간

        Untracked : 새로 만들어진 파일이거나 기존에 존재하던 프로젝트에서 Git을 초기화해서 Git이 아무런 정보도 모르는 파일

         Tracked : Git이 이미 알고 있는, Git tracking 중인 파일

         - Git Tracking하고 있는 파일들 중에서도 수정이 되었는지 유무에 따라.

            Unmodified : 이전 버전과 비교해서 수정 X -> Staging Area 못 감.

             Modified : 수정된 버전이므로 Staging Area 갈 수 있음.

    Staging Area : 버전의 history에 저장할 준비가 되어있는, 커밋할 준비가 되어있는 파일을 옮겨놓는 공간.

     .git directory : 버전의 history를 갖고 있는 공간. 우리의 작업들을 버전별로 관리하는 공간.

     - .git directory에 저장된 버전들은 checkout을 이용해서 얼마든지 원하는 버전으로 다시 돌아갈 수 있음.

 

 Remote

     .git directory

    - ‘push를 통해 local .git directory GitHub와 같은 서버에 업로드 가능

    - ‘pull을 통해 서버에서 로컬로 .git directory 다운로드 가능

 

4. GitHub에 코드를 올리는 과정

git init : Git 초기화. 내 컴퓨터 프로젝트 폴더에 여기에서 Git을 쓸 거라고 명령하는 것임!

   ★ Git 초기화를 하면, .git이라는 숨겨진 폴더가 만들어짐. 이게 로컬 저장소!!

       ☆ 로컬 저장소에는 내가 만든 버전 정보, 원격 저장소 주소 등이 저장됨.

       ☆ 원격 저장소에서 내 컴퓨터로 코드를 받아오면, 로컬 저장소가 자동으로 생긴다!

       ※ 한 폴더에는 하나의 로컬 저장소만 유지해야 한다.

   ★ Git 초기화를 하면, 기본적으로 master 브랜치 생성됨

   ★ rm rf .git : 더 이상 git 프로젝트가 아니게 됨.

 

git add : 코딩 후, 내가 변경한 파일 중 올리길 원하는 것만 선택. , 커밋으로 만들어지길 원하는 파일만 선택. 이 명령을 실행하면 파일이 Staging Area로 옮겨져 Git이 그 파일을 tracking

   ★ git add . : 현재 디렉토리에 있는 모든 파일들이 Staging Area로 옮겨짐.

   ★ git add * : git add .와 비슷하나, .gitignore와 충돌 가능. 그래서 git add . 사용 권장

      (.gitignore : Tracking 하고 싶지 않은 파일들, gitgithub에 올리고 싶지 않은 파일들의 모음)

   ★ git rm cached <file> : Staging Area에서 Working Directory로 이동. 이 명령을 실행하면 파일들이 Untracked.

 

git commit: 선택한 파일들을 한 덩어리로 만들기! Staging Area의 변경사항을 .git repository에 옮겨준다.

   ★ 덩어리 = 커밋(commit) = 하나의 버전!

   ★ 각각의 커밋에는 스냅샷된 정보를 기반으로 해서 고유한 hashcode가 부과됨. 이걸 이용해서 버전 정보 참고 가능. 커밋에는 ID뿐만 아니라 message, author, date/time 정보도 포함됨.

   ★ 커밋은, 변경 사항의 모음(X) 하나의 최종 코드 모음(O)

   ★ 커밋은 의미 있는 변동사항을 묶어서 만든다. (버그 고치는 데에 5가지 파일 수정 -> 5가지를 묶어서 하나의 커밋으로!) 그러면 어디를 수정했는지 파악 쉬움.

   ★ 커밋할 땐, 기능별로 세분화하여 작은 단위로 나누어서, 의미있는 이름을 지정해서 커밋하는 것이 중요! 근데 너무 작아도 안되니까 의미있는 단위로 나누는 게 중요

   ★ 커밋 메시지에 맞게 해당하는 내용만 포함해서 커밋하는 게 중요!

   ★ -m 옵션을 주면 커밋 메시지 적을 수 있음.

   ★ -a 옵션을 주면 git add를 하지 않고도 Working DirectoryStaging Area에 있는 모든 파일들을 커밋할 수 있음.

   ★ 나중을 위해, 커밋 메시지 적는 것에 시간 조금이라도 들이기!

   ★ git log : 생성한 커밋 보기, 히스토리 확인

 

GitHub 사이트에서 프로젝트 저장소(repository) 만들기

 

git remote add : 내 컴퓨터 프로젝트 폴더에 GitHub 저장소 주소 알려주기

git remote add origin https://github.com/(아이디)/(repo이름).git

: origin 이라는 이름으로 이 주소에 원격 저장소를 만들겠다!라는 뜻

 

git push : 내 컴퓨터에 만들었던 덩어리 GitHub에 올리기

 

 

(+)

git status : git의 상태를, 즉 작업하고 있는 상태와 현재 파일들의 상태를 볼 수 있음.

git diff : 정확하게 어떤 파일의 내용이 수정되었는지 확인 가능.

아무런 옵션이 없으면 working directory에 있는 것만 비교. --staged--cached 옵션을 주면 Staging Area의 변경 내용 확인 가능.

git config global alias.(앞으로 바꿀 명령어 이름) (바꾸고 싶은 명령) : 단축키

(ex) git config global alias.st status

 

 

 

출처 : https://www.youtube.com/watch?v=Z9dvM7qgN9s

깃, 깃허브 제대로 배우기 (기본 마스터편, 실무에서 꿀리지 말자)

https://www.inflearn.com/course/%ED%8C%80%EA%B0%9C%EB%B0%9C-%EA%B9%83-%EA%B9%83%ED%97%88%EB%B8%8C/dashboard

 

팀 개발을 위한 Git, GitHub 입문 - 인프런 | 강의

개인 프로젝트부터 현업 개발까지, 팀 개발에 필수적인 기술인 Git과 GitHub을 그림을 통해 쉽게 익힙니다. 아예 처음 익히는 분부터 실무 사례가 궁금한 분까지 모두 들으실 수 있습니다. CLI, GUI를

www.inflearn.com

https://serendipity24.tistory.com/235

'개발냥발 > FE (FrontEnd)👩🏻‍💻' 카테고리의 다른 글

React 익히기❗  (0) 2022.05.30
Javascript 활용하기❗  (0) 2022.05.25
Javascript 익히기❗  (0) 2022.05.16
CSS 익히기❗  (0) 2022.05.09
HTML 익히기❗  (0) 2022.05.09