All Articles

wecode 5주차_5일 TIL_Check git out! 자주 쓰는 git 용어 정리 및 간단 팁

github repository 만들기

repo 새로 만들 때마다 자꾸 검색하게 되서 이번 기회에 정리하기로 마음먹음!

image.png

  1. 깃허브에서 new repository 클릭해서 먼저 깃허브 상에 repo를 생성
  2. terminal에 git init 입력. 로컬저장소를 만드는 과정이다. 근데 이미 CRA를 실행했으면 초기화가 된 상태라 이 과정은 생략해도 된다!
  3. git status (상태 확인하는건데 필수는 아님)
  4. git add . 파일 전부 올리기. 파일 하나씩 올리기는 gi add 경로/파일이름
  5. git commit -m "day1 completed" 따옴표 안은 원하는 문구를 넣는거지만, 최대한 명확한 문구를 넣기
  6. git repository 주소를 복사한 다음 git remote add origin 주소이름
  7. git remote -v 로컬저장소와 원격저장소가 연결됨
  8. git push origin master 커밋한 파일을 원격저장소에 올리기

만약에 이게 프로젝트라면 처음 초기 세팅한 사람만 master에 push를 하고, 그 이후에는 각자의 branch로 push를 하면 관리자가 merge 작업을 통해 병합해준다!

프로젝트 진행시…

각자 파일을 수정하고 업로드 하려면…

  1. git add .
  2. git commit -m "home component completed"
  3. git push origin feature/home
  4. push까지 하고 프로젝트 repo가 있는 github 페이지로 들어가서 New Pull Request 해준다
  5. 관리자가 merge를 하면 그 master를 받고 또 새 가지를 파서 작업 시작!

branch 재활용 금지

image.png

초기 세팅은 branch가 master이다. 그 이후 파트별로 분업을 하는데.. 각자의 branch를 새로 파야한다.

  • 브랜치 확인 git branch를 하면 터미널에서 나의 branch 목록을 보여준다. 목록에서 나가려면 ESC+;+q를 순서대로 눌러준다!
  • 브랜치 생성 git branch feature/home 이런식으로…!
  • 체크아웃 git checkout feature/menu 쳌아웃 뒤에 이동하고 싶은 브랜치명 입력하기!

여튼 여태 나는 기능별로 브랜치 뚫는것 까진 잘 했는데… 각각 페이지에서 야금야금 수정할 사항이 생기면 이미 pr 날리고 merge된 상태에서 또 다시 작업이 끝난 브랜치로 돌아갔다.
하지만 재활용 금지!! 버리고 새 가지를 파야 한다…!
내가 처음에 작업하던 브랜치는 맨 처음 master인데… 공동작업을 하다보면 완료 시점이 달라지고, 다들 미래를 향해 가고 있는데 나만 과거에 머무르게 되므로 시점 차이가 나다 보니 자꾸 충돌이 이루어 지는 것..

나의 예시를 살펴보자.

충돌남이 났다고 터미널에 뜬다… Like this.

image.png

충돌이 나면 화면에 이런게 뜬다. 약간 섬유 뭉쳐놓은 그런 느낌이 난다 엉켜있는게

image.png

저건 직접 지워도 되고 아니면 저 위에 Accept Current Change나 Accept Incoming Change 같은 버튼 눌러도 된다. 여러 브랜치에서 작업을 하기 때문에 프로젝트를 하다 보면 충돌은 피할 수 없다.ㅋㅋㅋ

여튼 충돌을 없애보았는데…

image.png

내 메인화면이 안 뜨고 웬 노랑이만 나온다! 이게 왜 일까 했더니 우리 팀원 분 중 한 분이 작업하다가 div에 yellow를 입힌게 내 파일에도 영향을 미친 것이었다!
SASS nested tag 기능의 중요성…☆

여튼… css 쪽도 안 알아보고 충돌이 해결됐다고 생각하고 뭐라도 해보겠다고 push를 해버렸다..! 이럴때 시간을 되돌려서 지워주는 명령어가 필요하다

터미널에 git log를 입력해보면 내가 여태 commit 했던 내역과 head가 나오게 된다. head를 살펴보면 로컬의 소스코드가 어느 위치에 있는지 알 수 있다. 만약 push를 안 했으면 예전의 origin recipe를 커밋한 상태가 뜰텐데 내가 push를 했기 때문에 head에 아래의 캡쳐 이미지와 같은게 뜬다.

image.png

image.png

우리가 checkout은 브랜치를 바꿀 때 주로 쓰지만, 작업 내역을 지울때도 쓸 수 있다. git checkout src/Pages 명령어를 통해 같은 경로에 있는 파일 두개를 지웠다.

image.png

git status를 입력하면 하면 또 지울게 있음! 그래서 그것도 지워버렸다! 그랬더니 다시 예전의 내 파일로 돌아왔다~

여튼 팀원분이 css파일 제대로 수정해서 merge가 된 이후로 다시 pull을 받으니 문제 해결쓰! 맨날 혼자 블로그나 작업하다가 이런 프로젝트를 통해 git의 진가를 알게 되는것 같아서 뿌듯했다~

근데 만약에… 내가 뭔가 실수를 해서 파일을 망쳐버렸으면 그땐 어떻게 하지..?

image.png

image.png

세상이 무너져도 다시 클론받으면 그만

우리에겐 git clone이라는 아주 편리한 명령어가 있다! 세상이 무너져도 다시 클론받으면 그만이라는 걸 잊지말자!

여튼… git과 좀 더 친해져야 할 것 같다.