개발을 하면서 느끼는 점은 협업 툴의 중요성입니다.

 

그래서 이번엔 새로운 형상관리 시스템인 깃허브를 배워보려고 합니다.

 

참고로 오늘 나오는 정보의 모든 것은 www.youtube.com/watch?v=FXDjmsiv8fI&t=43s

위 유튜브가 출처입니다.

 

저는 그저, 위 내용을 그대로 글로 옮긴것이라고 생각하시면 편합니다.

(위 진행은 매우 빠르나, 글은 천천히 읽으면 되니까 좀 더 배우기 편할 것이라고 생각합니다.)

 

깃허브 가입이라던가 소프트웨어 다운로드에 관한 부분은 자세하게 다루지 않겠습니다.

 

 

 

구성표
환경 (OS : Window 10)
소프트웨어 내용 비고
git 형상관리시스템 git-scm.com/downloads
Source Tree GUI를 통해 GIT 관리 www.sourcetreeapp.com/
vs code 개발 IDE code.visualstudio.com/

 


먼저 계정이 필요합니다. 

주소 : github.com/

 

GitHub: Where the world builds software

GitHub is where over 56 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat...

github.com

아래 사이트에 들어가서 가입을 하고 id와 email을 기억해둡니다.

위 구성표에 적힌 비고란의 링크를 타고 들어가 각각 다운로드를 진행합니다.

 

 

git을 설치하면, cmd의 명령어를 통해 git 관리가 가능해지는데, 우리는 vs code에서 제공하는 명령창에서 해당 작업을 할 예정입니다.

Source Tree는 이를 좀 더 쉽게 한눈에 보면서 할 수 있도록 돕는 툴입니다.

 

오늘 핵심은 vs code의 명령창을 통해 git을 사용하는 것이고, source tree를 통해 한눈에 확인 하는 것입니다.

이를 위해 git 명령어를 통해서 파일을 관리하고 동시에 source tree를 통해서도 git을 관리해보겠습니다.

 

 

 

들어가기 앞서

 

 

이 페이지를 통해 배울 부분은 원격지에 저장하는 것을 제외하고 로컬의 git 저장소에서 로컬 워킹디렉터리에 체크아웃하고 스테이징에 반영 후 커밋하는 일련의 작업을 배우도록 하겠습니다.

 

 

 

git 저장소로 사용할 폴더 생성

 

깃 저장소로 사용할 폴더를 생성합니다.

이름은 자유롭게 정하면 됩니다.

 

git 저장소로 사용할 폴더를 열고 저장소로 초기화 하기

이제 이 폴더를 깃 저장소로 사용할 것입니다.

이를 위해 깃 초기화를 해야하는데

1. cmd 명령창을 열어 진행한다.

2. vs code로 파일 상태를 실시간으로 확인하며 진행한다.

3. source tree로 간편하게 진행한다.

 

2번으로 하는 작업은 실시간으로 확인한다는 점을 제외하고 사실상 1번과 동일한 작업이므로 2번 부터 해보겠습니다.

 

 

 

폴더 열기를 누릅니다.

 

 

아까 만든 폴더를 열어줍니다.

 

폴더를 연 모습

왼쪽에 보이는 공간이 만든 파일을이 올라갈 공간입니다.

 

새 파일을 만듭니다.

cat 이라는 파일을 만들고 이름을 톰으로 정했습니다.

저장은 필수!

 

명령창을 엽니다.

CMD 를 통해 git 명령어를 수행할 수도 있지만, Ctrl + ` 을 누르면 명령창이 자동으로 열립니다. 

그리고 폴더 또한 해당 위치로 자동으로 이동 되어 있습니다.

 

아래 명령어로 깃을 초기화 해줍니다.

git init

 

 

  사진을 보면, .git이라는 폴더가 생성됨을 알 수 있습니다. 이로써 git_repository라는 폴더는 깃 관리 아래에 들어왔습니다. git은 해당 폴더 안에서 필요한 내용들을 저장하고 관리 함으로써 파일들을 관리할 수 있게 해줍니다.

 

git config --global user.name "사용자"
git config --global user.email "사용자_이메일"

위 명령어를 통해 커밋할 주체를 설정합니다.

한번 설정하면 커밋할 때 마다 해당 정보를 사용합니다.

한번 커밋 후에는 변경할 수 없으므로 신중하게 설정합니다.

 

위 설정에 관한 것은 

git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%B5%9C%EC%B4%88-%EC%84%A4%EC%A0%95

 

Git - Git 최초 설정

Vim과 Emacs, Notepad++은 꽤 인기 있는 편집기로 개발자들이 즐겨 사용한다. Mac이나 Linux 같은 Unix 시스템, Windows 시스템에서 사용 가능하다. 여기서 소개하는 편집기들이 불편해서 다른 편집기를 사

git-scm.com

에서 더 자세하게 확인 가능합니다.

 

 

 

 

생성된 .git 파일을 지워 git 초기화 설정을 날려버리고 source tree 를 통해 한번 더 해봅시다!

 

시작하기 전에

jintan.tistory.com/47

 

[Sourcetree] Sourcetree 설치

소스트리를 통해 Git에 Commit Pull 등을 하려고한다면, 우선 소스 트리를 다운로드 받아야 한다. https://www.sourcetreeapp.com/ Sourcetree | Free Git GUI for Mac and Windows A Git GUI that offers a vis..

jintan.tistory.com

위 설치 방법을 보고 따라하시길 바랍니다.

 

 

설치할 때 입력한 계정 정보들이 위에서 명령창으로 설정한 

git config --global user.name "사용자"
git config --global user.email "사용자_이메일"

위 명령어와 동일한 작동을 한겁니다.

즉, 커밋할 때마다 사용할 유저 정보를 설치할 때 입력한 겁니다.

 

 

깃 초기화

상단의 Create 를 눌러 깃 저장소로 사용할 폴더를 지정해줍니다! 그리고 생성버튼 클릭!
무시하고 "예"를 눌러줍니다 ㅎㅎ

 

 

1. 번은 브랜치나 커밋히스토리를 보는 등등, git 시스템의 상태를 보는 곳입니다.

2. 스테이징이다. 깃은 원하는 작업 내역만 골라서 스테이징에 포함하고 부분적으로 포함된 스테이징의 내용을 커밋(저장) 할 수 있다. 

3. 아직 스테이징에 올라가지 않은 파일 

 

 

 

 

스테이징에 파일을 올리고 커밋해보자!

git status

상태가 나타납니다.

Untracked files 으로 나타나는 파일은 아직, 깃의 관리 전 파일이라는 뜻으로 스테이징에 올라가지 않은 파일을 의미합니다.

 

git add -A

add는 스테이징에 파일을 올리겠다는 뜻입니다. 이 때 -A 옵션은 모든 파일을 스테이징에 올리겠다는 의미입니다.

옵션을 선택함에 따라, 파일을 비교 후 올리는 기능이나, 수정된 파일만 올리는 옵션 등등이 존재하므로, 옵션을 잘 살펴보고 사용하기 바랍니다.

 

git status 으로 상태를 살펴보니, 새 파일이 스테이징에 올라왔음을 알 수 있습니다.

이 스테이징에서도 파일을 내리는 것이 가능하나, 해당에 관련한 설명은 여기서 하지 않겠습니다.

 

 

 

git commit -m "First commit"

커밋하겠다는 메세지로, -m은 커밋 메세지를 입력하겠다는 의미입니다.

 

여기서 부터 하나의 관리 포인트(=되돌릴 수 있는 시점이 생긴 것)가 생긴 것입니다!

 

 

수정&추가 된 파일을 source tree 를 통해서 커밋해보자

파일 cat의 이름을 수정

파일 mouse 추가

 

위 표시된 추가 버튼 클릭
커밋 메세지 입력
왼쪽 히스토리 창을 눌러 커밋 상태 (git log) 확인

 

커밋 로그 확인 후 되돌리기

되돌리는 방식에는 크게 두가지가 있습니다!

 

1. 되돌리고 싶은 커밋 지점과 현재 사이에 있는 모든 커밋 기록들을 삭제하고 되돌아가는 방법(reset)

2. 되돌리고 싶은 커밋 지점과 현재 사이에 있는 모든 커밋 기록을 반대로 커밋하는 방법(revert)

 

좀 더 자세하게 설명하기 위해 상황을 설정하자면,

12일날 파일 A를 커밋했고 13일날 파일 B를 커밋했다고 가정하자!

 

1번 방법을 통해 되돌린다면, 13일날 커밋한 기록을 아예 삭제하고 12일날 파일 A만 존재하는 상태로 커밋하는 것이며, 

2번 방법을 통해 되돌린다면, 13일날 파일 B를 커밋한 기록은 두고 B를 삭제하는 커밋을 추가하는 방법인 것이다.

 

 

1번 방법을 사용해서 먼저 되돌려 보겠습니다.

 

 

git log 로 커밋 번호 확인 후 앞 6자리 확인

git reset "앞6자리_일련번호" --hard

 

커밋이 완료 되었다는 메세지
source tree의 history를 확인 한 모습

Second Commit 기록이 아예 삭제 된 모습입니다.

 

 

 

다시 원래대로 되돌리고 source tree로 reset 해봅시다!

 

 

원하는 지점 우클릭
hard 모드로 reset
커밋을 되돌린 모습

워킹 디렉터리를 살피면 mouse는 삭제되어있고, cat은 원래대로 되돌아 온 모습을 확인 가능하다.

 

 

 

 

위에서 배운 방법대로 cat을 지우고 커밋해보자

 

되돌리고 싶은 커밋 지점과 현재 사이에 있는 모든 커밋 기록을 반대로 커밋하는 revert

cat이 삭제된 모습
두번째 지점으로 되돌리기

 

git revert "앞6자리 일련번호"

 

 

되돌린 내용들을 다시 커밋
source tree에서 history 확인

소스트리에서는 간편하게 우클릭 후 커밋 되돌리기를 누르면 됩니다.

 

 

 

 

 

 

git 브랜치 만들기

새로운 브랜치에서 커밋을 합니다.
커밋 후 기존 브랜치에 돌아오니, 작업했던 dinosaur 파일을 보이지 않습니다.
new-br이  분기했음을 확인할 수 있다.

좌측에 보면 브랜치 탭이 보이는데 해당 브랜치를 더블클릭하면 원하는 브랜치로 이동(checkout)이 가능하다.

 

 

새로운 브랜치 new-new-br을 만들어보자

 

 

 

새로운 브랜치에서 cat의 이름을 변경한다
커밋
master 브랜치로 돌아와 dog를 만들고 커밋

master와 new-new-br을 merge(병합) 했다. 마스터 브랜치에서 변화가 없었던 cat은 new-new-br 버전으로 덮어 썼고

dinosaur은 추가 되었으며, dog는 그대로 유지 되었다.

 

 

 

해당 명령어를 통해 git 커밋 로그를 그림으로 볼 수 있다.
위 명령어 결과물. 63b4c0 지점에서 브랜치가 병합되었음을 알 수 있다.
source tree로 확인 한 모습

 

 

 

병합시 충돌 나는 경우

branch bark-kang 생성
dog 수정 후 커밋
마스터 브랜치로 돌아와 dog 수정 후 커밋
merge 하니까 에러가 나는 모습

충돌이 나는 모습으로 충돌 나는 부분이 위와 같이 표시가 된다.

 

소스트리에서 보면, 충돌이 나지 않는 부분은 커밋이 되었을 테고 충돌이 나는 파일은 "커밋하지 않은 변경사항"으로 남을 것이다.

 

깃이 커밋을 거부한 상태인데,

위와 같이 둘중 하나만 선택하여 커밋하면 문제가 해결된다.

 

 

 

 

 

커밋 히스토리 정리하기

위와 같이 브랜치를 따서 작업하다보면 커밋 히스토리가 지저분해지는데 이때 사용할 명령어가 rebase 이다.

 

해당 명령어에 관해서는 url을 첨부한다.

 

backlog.com/git-tutorial/kr/stepup/stepup2_8.html

 

누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog

누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다!

backlog.com

 

'개발 > git' 카테고리의 다른 글

Gitflow 에서 branch 의 종류 설명  (0) 2021.10.02
Git flow 전략 공부  (0) 2021.10.02
- 02. 깃허브 이용하기  (0) 2020.12.27