프로젝트..git hub..그게 뭔데 어떻게 하는건데..

·2024년 4월 3일
post-thumbnail
내가 이 명대사를 이렇게 써먹을 줄이야

태어나서 처음으로 프로젝트를 하는 당신!
개발자라면 고로 깃정도는 눈감고도 써야한다는 정도는 알고있죠?
깃허브로 공유하고 노션으로 진행사항 확인하고 기깔나게 작업하고!
방법을 모르겠나요? ㅖ 저도 모르겠어요


구글링을 해도 사실 잘 이해가 안가서 몸으로 뛰고 굴러서 가져온

일단 작업하고 공유하고 로컬드라이브에 업데이트만 해보는 시간

에러? 전문성? 그런건 미래의 내가 해결 할거임. 아무튼 그럼
자 우리는 SSH키 설정도 다 했고 암튼 설정은 다 했어요 작업에 들어갈 거에요

SSH 키 발급방법을 알고 싶다면 요기를 참고하자


클론? 그게 뭐에요 어케해요

일단 팀 프로젝트를 할 거면 우리의 프로젝트를 내 로컬로 가져와야겠죠?
설마 다같이 로컬에 프로젝트 생성해서 카톡으로 공유한다는 말은 멈춰줘

  1. 일단 내가 복사해 올 프로젝트에 들어갑니다

  2. 프로젝트의 클론 키를 찾아서 복사해줍니다

  3. git Bash에서 프로젝트를 복사해올 위치로 이동합니다. 어려우면 해당 위치에서 git Bash실행해요

  4. $ git clone <SSH키> 입력해줍니다

  5. 프로그램 들어가서 클론파일 열어주면 알아서 building이 됩니다.

끝!

작업 드가자

자 우리는 프로젝트를 우리의 로컬 드라이브에 클론땡겨왔어요. 그럼 작업을 해야죠?
일단 요약해서 작업 순서를 알려드릴게요

  1. 작업 전에 브랜치 생성
  2. 작업 다 하고 브랜치에 커밋, 푸시
  3. Pull-Request(PR) 작성 & 팀원들과 코드리뷰
    이 과정은 ★작업이 끝나면★한다 (not 하루일과 yes 기능구현완료)
  4. Main에다가 Merge 갈겨
  5. Pull
  6. 다시 작업하고 무한 반복
    ☆ 기능구현 하기 전까지는 1~2, 5반복!

어때요 참 쉽죠?

염병 저는 바로 못알아 먹었습니다. 비전공자에 셀프로 터득해야하는 사람은 그저 눈물만 주륵주륵 흘릴 뿐이죠. 그치만? 여러분에겐 제가 있어요 다 필요없고 일단 작업에 들어갈 수 있게만 해보자고요

이미 프로젝트를 진행해본 사람은 이정도는 당연히 알고 있겠지만...
프로젝트 처음 하는 나는 '코딩은 어떻게든 하겠지만 그 외의 것들은 민폐를 끼칠 수 없어..!'하고 있다고..
어? 반대인가? 둘다 안됨. 아무튼 안됨.

1. 작업 전에 브랜치 생성

자 우리는 main에다가 작업하고 커밋때리는 개발자가 되지 않기로 해요.
안되는 이유는 각자 찾아보고 암튼 안됨. 일단 안된다고 알고 있고 브랜치를 생성해보도록해요

간단하게 말하자면 feat/기능이름/기능상세....로 설정하면 된다.
아래에서도 언급하지만 feat은 새로운기능이다
ex) 유저기능의 로그인이면 feat/user/log_in
오너기능의 비밀번호 리셋이라면 feat/owner/reset_password 느낌으로?
한번에 다 만들고 한번에 올리겠다! 싶으면 feat/user/account 로 적어서 작업해도됨
딱 이렇다! 할 건 없고 무슨기능을 가지쳐서 만들고 있는지 알 수 있으면 된다


작업 할 폴더에 가서 git Bash를 열면 우리는 (main)이라는 위치에 있다는 걸 확인 할 수 있어요
여기서 git checkout -b <브랜치명>을 입력하면 브랜치 생성후 이동이 됩니다.
혹시라도 이미 브랜치가 생성 되어있다면 git checkout <브랜치명> 하면 됩니다

맨위에를 보면 이미 있다고 써있져?
아래를 보면 Swtiched to branch~ 하고 써있습니다.
맨 아랫줄의 저 민트색 글자 보면 (feat/test/example)으로 변경된 걸 볼 수 있습니다.

이렇게 만들어두고 작업해주세여
작업 끝나고 집에 호다닥 간다고 커밋하다가 main에 넣는 불상사를 막기위해 일단 작업전에 브랜치깝시다..



2. 작업 다 하고 브랜치 커밋 & 푸시

하루종일 열심히 코드 짠 나..! 너무 뿌듯해..!
그러면 이제 우리 팀원들이 같이 볼 수 있도록 내 작업 내용을 공유해줘야죠?
백업 방법을 까먹었다면 요기를 참고해주세요
하지만 이 주인장은 맞춤형 명령어를 무료로 언급해줍니다

git status ( 뭘 올려야할 지 확인)
git add . (전체 파일 추가)
git status (스테이징 잘 됐는지 확인)
git commit -m "커밋명"
git push (집어넣음)

프로젝트 폴더로 가서 다시 gitBash를 열어줍니다
작업전에 브랜치 설정하고 안껐다면 다시 안켜도 되겠졍

  1. 자 작업한 작업물이 제대로 스테이징 됐는지 확인을 합니다 .
git add . 를 하기 전에 주의할점
가끔 보면 필요없는 파일도 같이 스테이징이 되어버릴 수 있다. 
빨간불 들어온 파일 중에 골라서 스테이징하려면 
git add 파일명(캡쳐본에서는 src~어쩌고)해서 스테이징 해줘야함!
  1. 커밋을 해주고요.
★ 임시로 커밋 명을 "commit"이라고 적었지만 우리는 "작업내용"을 적어주도록합시다.
★ 첫 글자는 대문자로 적어줍니다

유다시티 브랜치 네이밍가이드
feat : 새로운 기능
Fix : 버그 수정
Chore : 기타 변경 사항 (자잘자잘한 수정내역, 기능추가랑 헷갈리지 말자)
Docs : 문서 수정사항 (주석내용수정 등)
Test : 테스트 코드 수정
Refactor : 코드 리팩토링 (폴더이름수정, 클래스이름변경...등 코드 결과에 변경없는 수정)

----------------예시-----------------
"Feat : 회원가입 기능 추가"
"Feat : 비밀번호 재발급 이메일 전송 기능 추가 "
"Fix : 오타 수정"
"Chore : 무슨무슨 수정, 라이브러리추가.."
  1. 푸시를 해주면 됩니다.

    근데 어라라? 완료가 되어야하는데 Bash가 말이 많아요.
    자세히 보니 브랜치를 푸시하기 위해서는 다른 식으로 입력해야한대요.
    걱정은 없습니다. 친절한 Bash가 코드를 알려주거든요.
    가운데에 적혀있는 git push --set-upstream origin <branch name>을 복붙해서 다시 적어줍니다.

짜란! 완료입니다.
기능구현이 끝나지 않았고 아직 내가 이 브랜치에서 작업할 일이 남았다면 여기까지만 알고 있으면 됩니다.
혹시라도 다른 곳에서 작업을 하고 백업을 했다? 쭉 내려서 5번으로 갑시다



3.기능구현이 끝났을 때

하루이틀사흘동안 브랜치 독방에 갇혀서 맡은 기능구현을 끝냈습니다!
브랜치 커밋 푸시까지 다 했어요!
이제 코드리뷰를 하고 Merge를 하기 위한 과정을 같이 걸어보아야죠?

  1. "나랑 PR하지 않을래...?"

항상 작업을 끝내고 푸시를 하면 이렇게 뜨는 창을 봤었을 거에요.
깃허브는 친절해서 "PR하지 않을래..?" 하고 물어보는 거에요.

기능구현이 끝나지 않았을 때는 필요가 없지만 지금은 뭐다?
구현이 끝났으니 Compare & pull request버튼을 눌러줍니다.

  1. PR작성

    그럼 이런 화면이 보이는데요.
  • compare에서 내가 현재까지 작업했왔고, 작업이 끝난, PR을 작성할 브랜치를 선택해줍니다.
  • 제목, 내용 작성합니다.
  • reviewers, Assignees 선택해주고 creat pull request 눌러요.

  1. 리뷰!
    완료된 화면은 아래와 같습니다.
    리뷰를 누구에게 요청했고 무슨 커밋을 했는지도 다 떠요

    이 화면에서 쭉내리면 코멘트도 달 수 있어요

    File changed 들어가서 리뷰나 수정해야하는 코드에서 + 누르면 코드 코멘트도 가능합니다.

    이런식으로요. 짜잔!

여기서 리뷰를 했는데 수정사항이 있다?
그러면 수정작업하고 브랜치 커밋하세용
다시 리뷰받고 또 수정하고 커밋하고 또 리뷰받고 수정하고 커밋하고......

도르마무../



4. Merge가 머지

  1. 코드리뷰가 끝났으면 이제 Main 에 브랜치를 합쳐줘야겠져


갈겨
Confirm 눌러서 완전히 Merge해주면 끝!
은 아니고

  1. 작업이 끝났으니 필요없어진 브랜치는 보내줘야겠죠?
그동안 고마웠고 다신 보지말자 에러는 에러다 진짜..

이 프로젝트는 Auotomatically delete 설정을 해놔서 자동으로 Branch가 삭제 되어버렸네요.
원래는 원래는 Delete Branch가 떠야합니다.
Merge한 브랜치는 용도를 다했으니 Delete를 눌러서 삭제 해주도록 합시다.

2-1. Merge하면 자동으로 Branch가 삭제되게 설정하는 방법

간단합니다. Settings 들어가서 쭉 내리면 요 아래의 선택창이 떠요.

체크하면 이제 Merge할 때마다 자동으로 branch가 삭제 됩니다.



5. 같이 작업하려면 Pull을 땡겨야지

사실 지금까지의 과정은 다른 사람이랑 협업이라기엔 그냥 각자의 길에서 작업하고 뭉친 거 밖에 안됩니다.
서로 작업한 거 땡겨와서 연동되는지 실행도 시키고 해야할텐데 그 코드 복사해와서 옮길 거 아니죠? 읍읍

★★★★★★ commit안하고 pull 땡기는 불상사 에바쎄바 진짜 오바임 ★★★★★★
★★★★★★ pull 땡기기 전에는 무조건 commit했나 확인하기 ★★★★★★

  1. 작업 하는 프로젝트 폴더에서 git Bash열어줍니다

  2. main으로 들어옵니다.

    친절한 개발자는 무료로 돌아가는 방법을 알려드립니다

    위치가 작업중인 브랜치라면?
    git checkout main하면 메인으로 돌아오겠죠?

  3. pull 땡깁니다

git pull

진짜_real_완전_끝.velog

3-1. 나는 집에서 작업하고 돌아와서 이어서 작업하고 싶다!!!

똑같아요 위치는 작업중인 브랜치, 거기서 git pull 하면 됩니다
잘못해서 main땡기고 거기서 작업하지 않기로해 ^,^........
다른 장소에서 작업을 하지 않았다? 그냥 1-2번만 반복해주세요


다시한번 정리 요약

  1. 클론 폴더 생성
  2. 브랜치 생성 (ex. feat/user/account, feat/member/user/info)
  3. 커밋 (ex. "Feat : 유저, 오너 로그인기능 구현", "Feat : 유저 카카오 로그인기능 구현")
    ~~ 열심히 작업 (필요시 pull) ~~
  4. PR 및 코드리뷰
  5. Merge
  6. Main pull

사실 적는 와중에도 너무 대충 적어둔게 아닌가 하는 걱정이 좀 되는데요....
우리는 공부하는 개발자니까 일단 겪어보고 해결하면서 셀프로 알아가도록 하죠 ^,^
오다가다 보는 모든 분덜 다들 프로젝트 화이팅입니다

0개의 댓글