그냥 가끔의 기록장

1. Git 기본 정리 본문

기타 개발/Git

1. Git 기본 정리

the phoenix 2021. 7. 19. 19:56

사담: git을 많이 쓰는데, 워낙 소스트리만 사용하다 보니까 명령어를 잘 모르기도 하고, 개념도 헷갈리는 듯해 정리를 하고자 했다. 가장 많이 쓰는 브랜치, commit, push, PR, fork 등을 정리해보았다. 당연히 검색해서 공식사이트랑 이것저것 좋은 블로그를 참고해 정리하고자 했으나 틀릴 수도 있으니..ㅜㅜ (틀린 내용은 지적해주시면 가능한 빨리 반영하겠습니다ㅜㅜ)

 

1. Git branch 

  Git에는 branch가 있다. 각 브랜치는 독립적이라서 브랜치별로 작업을 하여, 동시에 여러 작업이 가능하다. 또 여러개의 브랜치들 중 하나를 다른 브랜치와 merge시켜서 새로운 브랜치를 만들 수도 있다. Git 저장소를 처음 만들면 master라는 브랜치만 존재한다. 새로운 브랜치를 추가하지 않는 이상 모두 master 브랜치에 반영이 된다. 따라서, master말고 다른 브랜치에서 작업하고 싶으면 새로 브랜치를 생성해야 한다.

 

<현재 브랜치 확인>

$ git branch

위 명령어로 현재 브랜치를 확인한다. (원격 저장소의 브랜치는 $git brach -r로 확인한다.)

 

<브랜치 생성>

$ git branch --name

위에서 name이 브랜치명이다! 

 

  브랜치를 생성했으면, 이제 다른 브랜치로 이동해야 한다. 명령어는 다음과 같다.

 

<브랜치 이동>

$ git checkout --name

이렇게 하면 HEAD는 --name에 해당하는 브랜치를 가리키게 된다. 

 

<브랜치 생성+바로 이동>

$ git checkout -b --name

이 경우엔 브랜치를 생성하고 새로 만든 브랜치로 바로 이동하는 명령어이다. 

 

<브랜치에서 원격 저장소에 push 하기>

$git checkout --name
$git push

이렇게 --name에서 작업한 내용이 원격 저장소에 반영된다.

단, 로컬 저장소를 원격 저장소에 처음으로 push할 때는 $ git push -u origin --name(branch 명) 으로 해야한다. (원격 저장소에는 새로 만든 브랜치의 정보가 없기 때문에)

 

<참고: 브랜치 전략>

https://techblog.woowahan.com/2553/ 역시 workflow 하면 우아한 형제들 블로그가 제일 잘 되어 있는 것 같다...

 

2. Git add VS commit

출처: https://june98.tistory.com/23  

 

https://june98.tistory.com/23 님 블로그에 아주 좋은 그림이 있어서 참고하였다. Local 저장소와 Remote 저장소는 다음과 같이 구성되어 있고, Local저장소는 다음과 같이 3단계로 구성된다. 

1. Git add

add 명령어는 변경되거나 새로운 working directory내의 파일을 staging area로 보내준다. 

(untracked file은 Git이 관리를 안하고 있는 파일, traked file은 현재 Git이 관리하고 있는 파일이다.)

 

* Staging area: commit할 파일들을 .Git Repository에 저장하기 전에 대기하는 장소

 

즉, add 명령어는 commit을 하기 이전이므로 .Git repository에는 아무 영향이 없다. 

 

2. Git commit

소스트리만 사용해서 commit이 한가지인줄 알았더니, commit도 다음과 같이 여러 버전이 있다고 한다.

1) git commit -m "message"

2) git commmit -a

3) git commit -am "message"

 

1)은 staging area에 있는 파일들을 메시지와 함께 commit

2)는 add를 하고 commit (한번도 add된적 없는 파일을 직접 add해야 함)

3)은 1)과 2)를 합친 버전이나, 이때도 untracked file은 직접 add해야 한다. 

 

commit을 하면 이제 local 저장소의 .Git repository에 파일들이 반영이 된다. 후에 여기서 push를 하면 remote 저장소의 .Git repository에 반영되고, Remote 저장소의 내용을 local 저장소로 가져오려면 pull 명령어를 이용하면 된다. 

 

3. Git fork부터 PR까지 흐름 정리 (소스트리)

1. fork할 remote 저장소에서 fork 누르기

 

2. 내 remote 저장소에서 clone 눌러서 https url 복사하기

 

3. 소스트리 > 새로 만들기 > url에서 복제 > 복사한 url 붙여넣기

 

4. 브랜치 생성

위의 1번 참고

5. 파일 작성, 변경 후  commit

Clone해서 소스트리에서 새로 저장소 만들기를 했기 때문에, local 저장소가 생겼을 것이다. local 저장소를 찾아서 적절한 IDE에서 열면된다. 이후 파일을 수정하고 생성, 삭제한 뒤 2번에서 나온대로 commit, push하면 된다.

 

6. PR 날리기 

base repository (clone한 기존 저장소)의 branch에 본인이 작업한 저장소의 branch를 반영한다.

base와 compare 헷갈리지 않기!!!

merge 가능할 경우 초록색으로 able to merge가 뜬다. 그럼 Create Pull Request로 PR을 생성하면 된다.

 

 

Reference

https://june98.tistory.com/23

https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%88%98%EC%A0%95%ED%95%98%EA%B3%A0-%EC%A0%80%EC%9E%A5%EC%86%8C%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0

https://ifuwanna.tistory.com/193

https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html

https://techblog.woowahan.com/2553/

Comments