UX·UI - FrontEnd Dev. Story

프론트엔드/정보 용어

터미널 Git으로 GitHub 사용하는 방법 A부터 Z까지(깃, 깃허브)

클로이겅쥬 2021. 12. 24. 22:34
반응형

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Git으로 GitHub에 버전관리를 하려고 할때마다 매번 헷갈렸다..

clone이 어쩌고 add가 어떻고, branch가 머시기고... 그럴때마다 검색하면 push에 대한 설명이라던지 commit 사용법이라는지 그런것만 있지 어떤 순서로 어떻게 하라는건지 제대로 된 설명이 없었다. 그래서 이 참에 그냥 내가 정리를해서 포스팅을 했다. 포스팅하고보니 이제 여기만 들어오게 된다..ㅋㅋㅋ

 

다른 깃 초보자들에게도 이 포스팅이 도움 되길 바라며..

 

 

 

 

 

[바로가기 버튼]

 

1. Git 초기화 설정으로 Git 버전관리하기

2. GitHub에서 저장소 만들어서 프로젝트 Git 이랑 연결하기
3. 작업한 프로젝트들을 버전으로 gitHub에 올리는 방법
4. 브랜치 만들기
5. 깃 저장소(Git Hub)에 업로드
6. 깃과 깃허브 이용해서 다른 컴퓨터에 작업했던 내역 불러오기
7. 원격 저장소의 다른 브랜치 들고오기
8. 다른곳에서 작업했던 영역을 다시 Pull로 변경된 부분만 가져오기
9. 다른 브랜치에 작업한것을 마스터에 병합하기(merge)
10. 버전관리 할 필요없는 파일이 작업폴더에 있을때




 

 

 

 

 

 

1. Git 초기화 설정으로 Git 버전관리하기


 

1) 관리하려는 폴더를 git 초기화 설정으로 git 버전관리 상태로 만들기.

- 이게 무슨말이냐면 내가 버전관리하려는 폴더를 이제 git으로 관리하겠다는 의미.

 

git init

 

터미널에 명령어를 입력하면 내가 지정한 폴더내에 반투명한 git 폴더가 생긴다.

그럼 이제 git으로 이 폴더를 관리를 하겠다고 설정하는 것이다.

 

 

 

 

 

2) 현재 프로젝트가 어떻게 관리되고 있는지 확인하는 방법. 

git status

 

 

* Untracked Files 

- git status 명령어 입력하면 파일은 만들어놨는데 git이 추적할 수 없다는 의미.

 

 

 

 

 

3) 스테이징 - 폴더&파일들을 git이 추적할 수 있게 올리는 것을 의미.

git add .

* git add . 에서 ' . '이 모든 파일을 의미한다.

 

 

 

 

 

4) 스테이징 후, 현재 파일 상태들이 어떤지 확인가능하다.

git status 

 

아까와 다르게 보인다. 스테이징을 했기때문이다.

 

* Changes to be committed

- 파일들이 모두 스테이징에 올라가서 커밋할 준비가 되었다는 의미.

 

 

 

 

 

 

2. GitHub에서 저장소 만들어서 프로젝트 Git 이랑 연결하기


1) 깃허브에서 뉴 레파지토리를 생성해 새로운 깃 저장소를 만든다.

 

 

 

 

2) 로컬폴더(VScode)와 GitHub 저장소를 연결시키기 전에 ID랑 Mail 등록하기.

 

우선, VScode로 돌아와서 터미널에 gitHub 계정이랑 이메일 주소를 등록시킨다.

- 이것을 전역에 등록한다고 한다.

 

* 깃허브 ID 값

git config --global user.name ID값

 

* 깃허브 이메일 값

git config --global user.email email@gmail.com

 

** --global이란?

- 시스템 전역에 id나 이메일값을 등록하겠다는 의미

 

 

 

 

3) 깃 저장소를 VScode에 연결한다.

git remote add origin 깃저장소

- 빨간박스로 표시된 걸 눌러서 복사한 경로를 깃저장소에 넣기

 

 

 

 

 

 

 

 

 

 

 

 

3. 작업한 프로젝트들을 버전으로 gitHub에 올리는 방법


1) commit 하기

git commit -m "메세지 내용"

 

* -m : 메세지를 남기겠다는 의미

작업내역은 구체적으로 누구나 알아보기 쉽게 남겨놓는다.

 

 

 

2) commit 잘 작동했나 확인하기

git log

 

commit 다음에 표시해논 이상한 글자는 커밋한 ID 값이다.

과거에 작업했던 작업으로 돌아가고싶을때 이 ID값을 사용해서 버전 이동이 가능하다.

아쿠아박스 생성은 커밋한 메세지 내용

 

 

 

 

 

 

3-1. git 시공간(작업내역) 여행하는 방법

더보기

 

● 예전에 작업했던 commit으로 되돌아가고싶을때

git checkout 커밋ID 붙여넣기

 

 

 

과거로 왔는데 다시 미래(최신버전)으로 가고싶다. 근데 최신버전은 커밋 ID값이 없다.

이 경우 어떻게 최신버전으로 가는가?

git checkout master

 


 

 

 

 

 

 

 

 

 

 

Commit 상태에서 과거로 돌아가면 과거 커밋에서는 수정을 못한다. 

만약 수정하고싶으면 새 브랜치(branch)를 만들어서 작업 가능하다. 그럼, 브랜치를 만들어보자.

 

4. 브랜치 만들기


 

1) 수정하고싶은 과거 커밋으로 돌아가자. 

git checkout 커밋ID

 

 

 

 

2) 과거에서 복사본을 만든다

git branch 뉴 브랜치 명

 

 

 

* 브랜치 잘 작동했는지 확인하려면

git branch -v

 

위에 이미지 처럼 aqua(new branch)랑 master, 2개의 브랜치 생성

* 초록색으로 ' * '표시와 있는 부분은 현재 위치하고 있는 파일을 가르키는것.

 

 

 

 

현재 위치가 아쿠아 / 마스터가 아닌이유는 main 브랜치가 master이고, 현재는 실제로 마스터에 있지만 해당 브랜치에서 아쿠아 브랜치 시점으로 이동한것. 즉, 현재 마스터 브랜친데 아쿠아 브랜치 시점이다.

그래서 해당 브랜치로 직접 이동해야지 포인터가 아쿠아 브랜치로 이동된다.

 

 

 

 

 

 

3) 아쿠아 브랜치로 완전 이동하고싶을때?

git checkout aqua(이동하고픈 브랜치명)

아쿠아 브랜치로 이동했다고 git  branch -v 통해서 확인가능하다.

 

 

 

 

 

 

 

5. 깃 저장소(Git Hub)에 업로드


 

위에 메모한것들 처럼 브랜치를 2개 만들었다치자. 그러면 branch가 아쿠아와 마스터 두개가 있다.

 

 

 

1) origin 에 master을 올리고 싶을때

git push origin master

* origin (원격 저장소라는 의미)

이렇게 push하고나서 본인이 만든 깃허브 저장소를 새로고침 하면 작업한 프로젝트가 올라간다.

 

 

 

 

 

 

2) 아쿠아 브랜치를 올리고 싶을때

git push origin aqua

 

 

 

 

 

 

3) 브랜치가 다양할때 한꺼번에 올리고 싶을때

git push origin --all

* -all 

- 현재 내 로컬작업에 등록된 모든 브랜치를 한꺼번에 다 올린다는 의미.

 

 

 

 

 

 

 

6. 깃과 깃허브 이용해서 다른 컴퓨터에 작업했던 내역 불러오기


 

1)  작업할 폴더 만들기.

 

2) 깃 저장소 git Hub에 간다.

 

코드 버튼을 눌러 아래 clone 주소 넘버를 복사한다.

 

 

3) 터미널에서 git clone 복사한 주소 넣기

 

4) 만들어논 1번 폴더에 git Hub에 올려져있던 프로젝트가 불러와졌다.

 

 

** clone을 하면 master 브랜치만 불러와서 다른 브랜치를 볼수가 없다.

다른 브랜치를 어떤게 있는지 모두 보고싶으면

git branch -a 하면

원격 저장소에 있는 모든 브랜치를 확인할 수 있다.

 

 

 

 

 

7. 원격 저장소의 다른 브랜치 들고오기


 

1. 아쿠아 브랜치 활성화 시키기

git checkout origin/aqua

 

2. 아쿠아로 이동하기

git branch aqua

 

3. git branch -v로 

 

아직 아쿠아 브랜치로 이동된것은 아니다.

 

 

4. 체크아웃으로 원하는 브랜치로 이동해야한다.

 

git checkout aqua

브랜치로 이동한것 확인 가능

 

 

5. 다시 master로 이동하고싶을때

git checkout master

 

 

 

 

 

 

8. 다른곳에서 작업했던 영역을 다시 Pull로 변경된 부분만 가져오기

 


1. 다른사람이 수정하거나 merge (병합)했던 내용을 다시 가져올때

git pull origin

 

2. git log로 확인하면 수정된 변경 사항들을 확인 할 수 있다.

 

 

 

 

 

 

 

9. 다른 브랜치에 작업한것을 마스터에 병합하기(merge)


현재 마스터 브랜치에 있을때 

 

1. git merge sub

: sub 브랜치를 마스터 브랜치에 병합하기

 

* 같은 영역에 수정사항 있을때는 충돌이 일어난다.

이럴땐 필요없는 부분은 지우기

 

2. commit 하고 push하기

 

 

 

 

 

10. 버전관리 할 필요없는 파일이 작업폴더에 있을때


1) .gitignore 파일을 만든다.

 

2) 파일 내에 필요없는 폴더이름 넣기

ex) 

일반 확장명 파일 경우 : useless.txt

폴더일 경우: /text

 

 

 

 

 

 

 

 


Recommand Posting For you Guys

 

* PHP란 대체 무엇인가..?

* SVN이 뭐죠?

* 팝업창과 모달창이 도대체 어떻게 다른겨...

* 매시업..? 다 뿌시는건가..?

 

 

 

반응형