[대구AI스쿨] 자율개발일지 210907 Git 사용법 (1)

김선아·2021년 9월 7일
0

대구AI스쿨 개발일지

목록 보기
40/46

1. Git과 Github란?

얄팍한 코딩사전 : Git은 뭐고, Github는 뭔가요?

1) 버전관리

프로젝트를 진행하다 보면
나중에 ① 이전 기능을 다시 가져오게 될 수도 있고,
② 누가 실수로 잘못된 코드를 섞으면 복원해야할 때도 있고,
③ 바뀌기 전 내역들도 중간중간 저장을 해 두어야 한다.

그리고 최악의 경우, ④ 클라이언트가 "제일 처음 것이 낫네요"라고 하면..!! 되돌려야하는 경우가 생김


2) 협업

협업 프로젝트를 진행하다 보면,
누가 언제 뭘 어떻게 건드렸는지 파악하기도 힘들고 버전별 관리도 함께 진행해야 한다.


3) Git

커밋을 통해 프로그램의 변화가 있을 때 마다 저장해 둘 수 있다.

커밋은 전체 파일이 저장되는 것이 아닌, 변경사항들만 기록되는 거라서 여러번 박제를 한다고 해서 용량을 많이 차지하지 않는다.

브랜치라는 작업을 통해서 주가 되는 메인 프로젝트에서 나만의 별도 작업을 진행할 수 있고, 또 그것을 부분 병합하는 것도 가능하다!


4) Github






2. Git 허브 시작하기

얄팍한 코딩사전 : 가장 쉬운 Git 강좌 - (상) 혼자작업편

1) 설치해야 할 것

Git, VS Code (IDE프로그램), Source Tree를 설치한다.

※ 원래 사용하던 IDE프로그램인 Sublime Text가 있었지만, 터미널 작동법이 어려워서 얄코님의 강의대로 VS Code를 설치했다.


2-1) git에 프로젝트 폴더 올리기 : VS Code로 하는 방법

일반적으로는 CLI나 PowerShell, 맥에서는 터미널에서 폴더의 경로를 찾아서 들어가지만, VS Code를 사용하면 쉽게 터미널을 사용할 수 있다.

git에 올릴 프로젝트 파일을 열고, Ctrl + 역따옴표를 누르면 VS Code 하단에 터미널이 열리고, 현재 폴더의 경로가 이미 설정되어 있다.

명령어 git init를 입력하면 빈 저장소가 만들어 졌다는 문구가 뜬다.

이후 다음의 명령어를 이용하여, 사용자 이름과 이메일을 등록한다.

숨겨진 파일보기를 누르면, .git이라는 숨김 폴더가 생성되어 있는 것을 확인할 수 있다.


2-2) git에 프로젝트 폴더 올리기 : Source Tree로 하는 방법

2)에서 생성된 .git폴더를 삭제한 후 시작한다.

Source Tree를 실행 시킨 다음, +Create를 누르고, 탐색버튼을 통해 작업중인 프로젝트 파일을 연다.


3-1) 현재 시점을 저장하기 - VS Code로 하는 방법

VS Code의 터미널에서 git status를 입력하면, 아직 담기지 않은 파일들이 보인다.

git add -A 명령어를 넣고, git status를 사용해서 커밋 될 파일이 잘 들어가 있는지 확인한다.
확인한 후에는 git commit -m을 명령어로 어떤 시점의 커밋인지 간단하게 설명을 써 준 다음, 커밋을 진행하여야 한다. (커밋의 제목이 됨)


3-2) 현재 시점을 저장하기 : Source Tree로 하는 방법

3-1) 상태에서 Source Tree로 들어가 보면 커밋할 내용이 없다고 뜬다.
새 파일을 추가해서 다시 커밋을 진행한다고 보면,
VS Code에서는 git status를 입력하여 새롭게 커밋할 내용이 있는지를 확인해야 하지만, Source Tree에서는 +버튼을 눌러서 스테이지에 add해 준다.
아래 칸에서 간단한 설명을 넣은 다음 commit버튼을 눌러 커밋을 완료한다.



4) 변경사항 저장, 확인하기

먼저 cat파일을 삭제하고, mouse의 내용을 name : mickey로 변경한다.
새 파일 penguin을 만들고 내용을 name : pororo 입력한 후 저장.

VS Code 터미널에서 git status를 입력하면

cat파일 삭제, mouse파일 수정, 새 파일 penguin이 차례로 나타난다.

Source Tree 에서도 다음과 같이 확인 가능

다시 VS Code 터미널에서 git status를 입력해서 보면, 더 이상 커밋할 것이 없다는 문구를 확인할 수 있다.



5-1) 과거의 상태로 돌아가기 Reset : VS Code로 하는 방법

VS Code 터미널에서 git log 명령어를 입력하면,
지금까지 커밋한 내역들을 볼 수 있다.

여기서 ADD DOG의 부분으로 되돌아가기 위해서, 앞 여섯자리를 복사한다.

git reset 여섯자리 --hard를 입력하면 다시 그 전 상태인 ADD DOG커밋으로 돌아간 것을 확인할 수 있다.


5-2) 과거의 상태로 돌아가기 Reset : Source Tree로 하는 방법

다시 Reset 하기 전 ADD MODIFY DELETE 상태로 만들어 두고, Source Tree에서 되돌아갈 커밋에서 마우스 오른쪽 클릭
이 커밋까지 현재 브랜치를 초기화hard를 선택한다.


6-1) 과거의 상태로 돌아가기 Revert : VS Code로 하는 방법

git log 명령어를 사용하여, 지금까지 저장된 커밋들을 확인한다.
아까 Reset과 달리, 취소할 시점의 커밋 일련번호 앞 여섯자리를 복사한다.

git revert 여섯자리를 입력하고 난 뒤,

새 커밋 메세지를 작성하겠다는 메세지가 뜨면,
그대로 저장하겠다는 vi 명령어 :wq를 입력한다.

혹시 다음과 같은 메세지가 뜨지 않는다면, git commit -m "revert"를 입력해서 커밋을 진행 해 준다.

git log 명령어로 확인해 보면 Reset처럼 커밋이 삭제된 것이 아니라, 새로운 커밋이 생성되어있는 것을 확인할 수 있다.


6-2) 과거의 상태로 돌아가기 Revert : Source Tree로 하는 방법

취소할 커밋에서 마우스 오른쪽 클릭을 하여 커밋 되돌리기를 눌러준다.

Revert 새 커밋이 생성된 것을 알 수 있다.


7-1) Branch 만들기 : VS Code로 하는 방법

git branch 브랜치명을 입력한다.
git branch를 다시 입력해 보면, 기존 브랜치인 Mastermy idea라는 새로 만든 브랜치가 보인다.

(브랜치 명을 입력할 때 띄어쓰기가 있다면, 하이픈-으로 연결해 준다.)

git checkout 브랜치명을 입력하면 해당 브랜치에서의 작업을 할 수 있다.
git checkout my-idea를 입력하여 mouose파일을 삭제 후,
dinosaur파일을 새로 만들어 name : dooly라는 내용을 입력한다.

git add -A , git commit -m "dino"라고 명령하여 my-idea브랜치에서의 새로운 변화를 커밋한다.

다시 Master로 돌아가고 싶다면, 터미널에서 git checkout master을 입력하면된다.

제일 왼쪽 하단을 보면 현재 어느 브랜치에서 작업을 하고 있는지 확인할 수 있다.


7-2) Branch 만들기 : Source Tree에서 하는 방법

  • 각 브랜치로 체크아웃 하는 방법

  • 새 브랜치 만드는 방법


8) Merge 병합하기 : VS Code로 하는 방법, Source Tree로 하는 방법

우선, my-idea에서 새로운 브랜치 my-another-idea를 만든다.

my-another-idea에서 변경된 내용을 master로 가져와서 병합해야 한다.

먼저, git checkout master를 입력하여, master브랜치로 체크아웃 해 준다.
git merge 브랜치명을 입력하여, 현재 체크아웃 상태인 master브랜치와 my-another-idea브랜치를 병합한다.

Source Tree에서는 브랜치에서 마우스 오른쪽 클릭을 하면, 쉽게 합병할 수 있다.


9) 병합 시 충돌

다른 브랜치에서 같은 파일의 같은 부분을 수정한 뒤, Merge하는 경우 충돌이 일어난다.

이 경우, 둘 중 하나를 선택하여 삭제를 해 준뒤, git add -A를 진행한다. (터미널에서 커밋을 할 경우에는 반드시 git add를 실행한 뒤 커밋을 진행해야 한다.)

이번에는 git merge 브랜치명이 아닌 git commit을 입력한다. (git commit -m "커밋명"을 사용하지 않는다.)


10) Rebase : 재배치

각각 다른 브랜치들을 Merge로 병합하면 복잡해지지만, Rebase를 사용하면 한 라인으로 깔끔하게 작업내역을 만들 수 있다.

git rebase 브랜치명을 입력하여 사용한다.

프로젝트의 성격에 따라, MergeRebase를 적절히 활용하면 된다.

Source Tree에서는 마우스 오른쪽을 클릭한 후, 재배치를 눌러주면 된다.


11) 브랜치 삭제

VS Code 터미널 :git branch -D 브랜치명
Source Tree : 마우스 오른쪽을 클릭한 후, 브랜치 삭제를 눌러 진행해 준다.

0개의 댓글