본문 바로가기
AI월드/⚙️AI BOOTCAMP_Section 3

가장 쉬운 Git + Github강좌_Day41(2)

by khalidpark 2021. 3. 4.

Git 이란 무엇인가?

쉽게 말해 '시간여행이 가능한 평행우주'

'시간여행' = 시간대별로 원상복귀 또는 특정 시점으로 가서 필요한 것만 가지고 현재로 올수 있고

'평행우주' = 진행하고 있는 프로젝트에서 가지쳐서 사이드 프로젝트로 실험적인 프로젝트도 같이 진행해볼수있도록

 


1. Git 기본 세팅하기

 

1) 작업할 폴더를 만들고

2) VS CODE로 해당 폴더를 open

3) 파일 생성, 작업 등 진행 후

4) VS CODE NEW TERMINAL 창 연 뒤

 

git init
해당 폴더를 git 환경으로 설정

git config --global user.name "이름"
git config --global user.email "이메일"
이름과 이메일을 설정

위와 같이 숨겨진폴더 (.git) 이 생성되고, git 환경안에 해당 폴더가 들어왔음을 확인할 수 있다

 


2. 현재 시점을 저장하기

git status
현재 상태 파악
untracked : 아직 git 저장되지 않았다는 뜻

git add -A
모든 파일을 git에 담아라

git status 다시 확인해보면
changes to be commited : commit 되기 위해 기다리고 있는 것들

git commit
commit 명령어
git commit -m "설명"
이번 commit에 대한 보충설명

다시 git status 해보면
이제 작업할 git이 없다고 나옴. 최종 저장 이후 변화가 없었기 때문에

새로운 파일(dog)를 만들고 status 를 돌렸더니 
아래처럼 변화감지

git add -A 후
git commit 명령어 실행한다음

지금까지 git 한 내역을 확인하기 위한 명령어
git log

2번의 commit 한 내역을 확인할수있다

 


3. 과거로 돌아가기 - reset , revert

 

두가지 방법

1) 과감한 방법 (이전 데이터 싹 지우는 방법)

2) 신중한 방법

git reset '6자리' --hard
6자리 : commit 앞 6자리 , 돌아갈 시점
하드하게 싹 지우는방법
git revert
6자리 : commit 앞 6자리 , 취소할 시점

 

4. 평행우주 넘나들기 - Branch

 

git branch 브랜치이름
(git branch my-idea)

브랜치 설정 후 
git branch
브랜치 내역 확인

git checkout my-idea
해당 브랜치로 이동

좌 my-idea branch 안에서의 작업 / 우 master로 되돌아오면 "pig"가 사라진걸 확인할수있다.

 

4. 다른 우주에서 가져오기 - Merge , Rebase

 

master 상황에서

git merge my-idea
(my-idea 브랜치에서의 내용을 master위에 덮어씌우기)

 

 

merge가 만능은 아니다

주의해야할 사항이 있다

 

bark-wang 이라는 브랜치를 만든 뒤, 들어가보겠다

 

bark-wang 브랜치에서 dog 파일에는 bark wang

master 에서 dog 파일에는 bark warlllll

이런 뒤 merge 라면 충돌오류 발생

 

위와같은 경우 , 해결이 가능하지만

가능한 다른 브랜치가 같은 파일을 수정하는일을 피하는 것이 좋다

 

 

 merge , rebase의 차이

git branch -D my-idea
다쓴 브랜치를 삭제할때


5. git hub

git remote
원격 연결되어있는 repository를 확인하는 코드
git remote add origin 파일위치명
git puth -u origin master
.gitignore
공개되면 안되는 파일이나
라이브러리설치(어차피 실해되면 설치될건데)

.gitignore 라는 파일을 생성한 뒤
숨기고 싶은 파일도 생성 (verysecret)

.gitignore 파일안에 숨기고싶은 파일명을 추가한뒤 저장하면
git status 시 해당 파일은 표시되지 않는걸로 확인됨

 

 

6. 깃헙 소스를 내 컴퓨터로 다운받을때

 

git clone github.com/khalidpark/git_and_github_test.git

git pull origin master

 

6. 깃헙 브랜치

 

새로운 폴더 생성후

git checkout -b my-idea

새로운 브랜치를 만들고 그 브랜츠로 바로 넘어가는 명령어

해당 브랜치를 깃헙에 연결해주고 (remote)

git push origin my-idea

my-idea라는 브랜치로 올리겠다고 명령하면

 

 

 

원하는 브랜치에서 clone 할때는

 

git branch 로컬 브랜치만 확인가능하나
git branch -a 는 로컬,원격 브랜치 모두 확인가능

어라 근데 업데이트가 제대로 되지 않았다

 

git fetch 실행해서 원격과의 업데이트 쫙 한다음 다시 실행하면

BAM~!!!

git checkout -b 새로만들고싶은 로컬브랜치명 origin/원격브랜치명
git checkout -b my-ideassss origin/my-idea

로컬에 my-ideasssss 브랜치를 만들어라
내용은 원격의 my-idea 브랜치에 있는거에서 가져와라

 

7. 충돌 해결하기!

 

vscode에서 충돌파트를 친절하게 보여준다 우선

둘중 하나만 남기거나, 적당히 수정한뒤 저장

 

그리고 git add-A 후 git commit 까지만 입력

:wq 입력후 git push 하면 마무리

 


출처 : youtu.be/FXDjmsiv8fI

 

출처 : youtu.be/GaKjTjwcKQo

728x90

댓글