Ops, Infra, etc/🐙 Git

Git을 통한 협업 실제 사례

DarrenKwonDev 2020. 12. 21. 17:14

gist.github.com/ihoneymon/a28138ee5309c73e94f9

 

git 을 기반으로 git-flow를 사용하여 애플리케이션 배포버전을 관리하자.

git 을 기반으로 git-flow를 사용하여 애플리케이션 배포버전을 관리하자. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

 

 

사용할 git 전략

 

 

 

* git checkout은 브랜치를 생성하거나 이동하거나 복원(Restore)하는 용도로 사용되었는데 git 2.23.0 버전 이후에 switch와 restore로 분리되었습니다. honeymon.io/tech/2019/08/30/git-2.23-release.html

 

저는 줄곧 switch의 기능으로만 사용해왔으니 checkout을 switch로 변경만 하면 됩니다.

 

 

1. 시작

원격 저장소와의 sync가 필요 이거 안 하면 작성한 코드는 헛고생이 될 수 있습니다.

git clone [address] // 처음

git pull [address] // 가져올 때

git pull origin [branchname] // 다른 branch를 가져올 때

 

2. branch 만들기
git branch 

  * git branch -a 로 원격, 로컬 저장소의 branch를 모두 확인할 수 있다.
git branch [branchname]  

  * git branch -d [branchname] 으로 branch를 삭제할 수 있다.
git checkout [branchname] // 이동

 

3. 내가 작성한 코드 원격 저장소에 push하기
git push origin [branchname]

  * 습관적으로 git push origin master를 입력할텐데 그러지 말자

  * git push origin [branchname] -f 으로 강제 push를 할 수 있다.

 

4. 다른 brunch와 merge하기

우선 해당 동일한 이름의 brunch 생성 후 이동하여 원격 저장소와 sync해주자

git pull origin <branch name> 

 

그 후 merge하자.

// A branch에서 B branch를 merge하고 싶다면

// HEAD를 A로 이동
git checkout A
// B를 merge
git merge B

 

5. 잘 돌아가면 master branch에 merge 후 배포!

dev branch에서 성공적으로 테스팅을 마쳤다면 master branch에 병합하여 실제로 배포 작업을 진행하면 된다.

 

 

 

* 뭔가 실수를 저질렀을 때

 

잘 모르겠다면 일단 문제 없었던 곳으로 하드 리셋

git reset --hard [hash]

혹은 이전에 커밋한 내용을 수정하는 amend를 하자. 최근에 알게 되었는데 상당히 편리한 듯.

git commit --amend

 

 

* 하던 일을 잠시 어딘가에 넣어두기

 

뭔가 작업을 하다가 다시 특정 브랜치나 시점으로 이동해야 할 때 현재 작업을 임시 저장하는데 stash가 상당히 편리하다. checkout이 안되는 등에도 stash를 임시로 사용하고 되돌아가기도 한다.

 

현재 작업을 저장하고 브랜치를 head로 돌립니다. save는 생략이 가능합니다.

git stash (save)

 

저장 목록을 출력합니다.

git stash list

 

가장 최근에 저장한 내역을 불러오고 리스트에서 내역을 삭제합니다.(pop과 차이점)

git stash pop

 

가장 최근에 저장한 내역을 불러오고 리스트에 내역을 남겨둡니다.

git stash apply

 

가장 최근에 저장한 내역을 삭제합니다.

git stash drop

 

stash@{0} 내역을 삭제합니다.

git stash drop stash@{0}

 

 

 

 

 

 

내가 참고할 글들)

 

darrengwon.tistory.com/327?category=869239

darrengwon.tistory.com/329?category=869239

www.devpools.kr/2017/01/31/%EA%B0%9C%EB%B0%9C%EB%B0%94%EB%B3%B4%EB%93%A4-1%ED%99%94-git-back-to-the-future/

 

개발바보들 1화 - git "Back to the Future"

  이 내용에 대한 자세한 기술적인 설명이 듣고 싶나요? 연속되는 다음글을 참조하세요    

www.devpools.kr

 

www.devpools.kr/2017/02/27/%EA%B0%9C%EB%B0%9C%EB%B0%94%EB%B3%B4%EB%93%A4-2%ED%99%94-git-stash/

 

개발바보들 2화 – git “Stash”

세상을 살아갈 때, 내가 계획한 대로 되는 일이 거의 없드시 개발도 마찮가지로, 다양한 상황을 겪게 됩니다. 이런 예상치 못한 일을 겪게 될 때, 유연하게 대처하는 방법 중 하나가 stash 입니다.

www.devpools.kr

backlog.com/git-tutorial/kr/

 

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

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

backlog.com