본문 바로가기
Develop/Git

[Git] Git 동작 방식 쉽고 구체적으로 설명 (Git 초보자 대환영)

by 코딩의성지 2021. 3. 1.

하이 ~~

 

오늘 오랜만에 글을 쓴다.

 

회사에 신입분들이 많이 들어오고 올때 마다 Git 동작방식에 대해 설명을 해주곤 하는데...

 

시간이 난 김에 그 과정을 쭉 한번 정리해놓으면 좋을듯 하여, 이렇게 글을 쓴다.

 

일단 오늘은 GitHub로 설명을 할거고.. 설명을 위해 이렇게 프로젝트도 하나 임시로 만들었다.

 

먼저 우리는 서버의 레퍼지토리를 만들어주기 전에 클라이언트 단에서 레퍼지토리를 만들어줘야하는데

이 과정이 git init 이다.

git init

 

나는 gittest라는 directory를 하나 만들어서 거기  git init 으로 로컬 레퍼지토리를 하나 만들었다.

 

 

다음은 우리가 만들어 놓은 git local repository를 sever 의 repository (reomte repository) 와 연결해보자.

 

github든 bitbucket이든 gitlab 이든 이렇게  아래처럼

레퍼지토리 url 주소를 알려준다. 이 주소를 복사해주고  아래 명령어를 쳐주면 ...!

git remote add origin <url 주소>

연결이 잘 된다.

 

다음은 파일을 하나만들고 연결시킨 remote repository 코드를 보내보자 ( push)

 

일단 master 에서 작업은 실무에서 원칙적으로 하지 않기에, dev라는 브랜치를 만들고 

 gittest.txt라는 파일을 하나만들고, git add 와 git commit 명령어를 쳤다.

 

아래에서 commit 에 -m 옵션을 통해 간단하게 메시지만 입력했는데, 실무에서는 commit 메시지를 입력하는 rule 이 있을테니 여기서는 간단하게 실무에서는 rule을지켜서 하기를 바란다.

git add

를 통해 Stage 영역으로 코드를 보내고,

git commit

으로 local repository로 보낸다.

 

 

여기서 add 했을때 , 잘못된 파일을 add 한 경우 아래 명령어로

git restore --stage <file>

그 파일을 다시 돌려놓을수 있다.

 

또 commit 까지 해버린 상태라면

git reset --soft

로 Stage Aread 까지 ..

 

git reset --mixed

로 Working Directory 까지 되돌릴 수 있고

 

git reset --hard

로 아예 그파일을 삭제해버릴 수도 있다.

 

 

그리고

git commit -a

는 git add 와 git commit을 동시에 수행할 수 있다.

 

 

자 다음은 작업한 걸 server (remote repository) 로 전송해보자.

 

git push origin <브랜치명>

내가 여기서 dev라는 branch 로 작업을 해줬으니, 서버에도 동일하게 dev라는 branch로 push를 한다 (서버에 dev라는 branch 가 없으면 알아서 만들어준다),

 

자 여기까지 하면 우리가 서버로 push 까지는 성공한 것이다.

 

자 이제 서버로 가보자.

이렇게 commit이 하나 잘 된걸 확인할 수 있다.

 

자, 이제는 여러분이 개발을하는 개발자라고 상상을 해보자.

먼저 똑같이 본인의 pc 에서 git local repository를 만들어야한다.

 

이렇게 프로젝트를 연결하고, 우리가 dev라는 branch에서 작업을 했으니 dev라는 branch를 하나 따준다.

그리고 이제 코드를 Working Directory로 내려받아 줘야하는데, 여기서 

git fetch

로 local repository로 내려받아주고,

git merge

로 Working directory로 내려받아줘야되는데 귀찮으니...

git pull

로 두 과정을 한방에 해결하도록한다.

이제 이렇게 코드를 내려받고, 본인이 작업할 브랜치를 하나 만들어서 작업을 해주고,

 

아까 배운 것 처럼 , commit 과 push를 해주고

 

서버로 가보면

이렇게 pull request를 만들어 낼수 있는 버튼이 뜨는데, 그 버튼을 누르면

내가 작성한 commit 메시지에다가 부가적으로 내용을 더추가해서 

kang -> dev 로 pull 할수 있는 request를 만들어내는 작업을 할 수 있다.

 

이제 다시 관리자라고 가정해보자. 개발자가.. pull request를 날리면 

코드리뷰를 거치고, 아 이코드가 정상적인 코드다 하면 

아래 Merge 버튼을 눌려서 코드를 병합한다.

 

자 다시 console로가서 branch를 dev로 바꿔주고 , git pull 을 해보자

(아직 서버의 소스코드가.. local에는 동기화가 안되어있을테니 ..)

그리고 git log를 쳐보면 ..

이렇게 dev에서 작업된 history를 확인할 수 있다.

 

오늘은 git의 아주 아주 기본을 다뤘다. 이 명령어와 기능이 익숙해지면 이제 여러분도 현업에서 git을 사용할 때, 큰 문제가 없을 것이다. 그럼 끝 !

반응형

댓글