자주 사용하는 Git Terminology

Minjae Kwon·2020년 10월 28일
0
post-thumbnail
post-custom-banner

🙋🏻‍♀️ Git 이란?

Version Control System. 버전 관리 시스템. 작업 단계 별로 데이터 저장이 가능하며, 협업의 도구가 된다.

git init // git 로컬repo 생성 // git clone 깃헙repo주소 로 시작할 경우, 이 절차 생략
git add [파일명] // 또는 git add . 사용하여 전체파일 추가
git status // staging area에 추가된 파일과 아닌 파일들 확인
git remote add origin [깃헙repo주소] // github clone한 경우, 이 절차 역시 생략
git push origin master -u

git remote -v // 연동된 원격repo 주소 확인
git log // 깃히스토리 확인
git diff [원래branch] [비교할branch] // 현재 working tree 에 있는 작업 버전과 최종 commit 버전 차이 비교

git remote add upstream [깃헙repo주소] // maintainer 의 repo 등록 후, pull upstream 가능
git pull origin master // git fetch + git merge. 원격repo 변경사항을 가져와서 로컬repo병합
git pull upstream master // 원격 maintainer repo 의 변경사항을 바로 가져와서 로컬repo병합

git reset HEAD [파일명] // gid add 이후의 상태에서 stage 에 있는 파일 -> unstage 로 되돌리기
git checkout [파일명] // modified 된 파일을 최종 commit 되었던 이전의 상태로 되돌리기

🙋🏻‍♀️ Pair programming 등 협업을 할 때, 알아야 할 git terminology? (workflow)

처음에 upstream repository 에서 페어분과 나 각자 fork → clone 을 통해 local 환경에서 작업을 한다. 내용 변경 후에는 git push origin master 까지 마쳐서 각자의 원격 repository 를 최신 상태로 업데이트 해 둔다. 그리고 상대방 원격 repo 에 업데이트 된 내용을 현재 나의 작업 공간에서 합치고 싶다면 git pull 을 실행한다. 이 때, 상대방 원격 repo 주소가 미리 등록되어 있어야 한다.

만약 페어분과 내가 같은 부분을 수정했다면, conflict 를 일으키며 merge 가 실행되지 않는다. 그 때는 코드에디터를 보면서 [내가 수정한 것, 페어분이 수정한 것, 혹은 두 사람의 수정본 모두] 중 어떤 것을 최종안으로 가져갈지 고르고, 저장해서, 새로 git add / git commit / git push origin master 하는 과정을 거친다. 상대방 repo 에 직접 push 하기 보다는, 나의 repo 에 업데이트를 하며 (상대방은 필요시 pull 해서 나의 변경사항을 내려받을 수 있다), upstream 에 반영할 준비가 되면 나의 원격 repo 에서 pull request를 한다.

git remote add pair [상대방깃헙repo주소] // 상대방 repo 등록 작업. pair 대신 다른 이름 설정 가능
git pull pair master // master 자리에는 master 혹은 내가 가져오고 싶은 branch name 작성

🙋🏻‍♀️ 새로운 branch 를 만들고 지우는 건 어떻게?

항상 지금 있는 작업 공간에서 새로운 branch를 뻗어나가게 된다. 따라서 현재 작업 공간이 어디인지 반드시 확인한 후 가지를 생성한다. 1. git checkout 으로 지금 있는 곳 확인 및 이동 후 2. 새로 가지 생성!

git checkout master // master branch 로 이동
git checkout -b navbar // navbar 라는 branch 를 만들고, 현재 작업공간을 navbar로 이동
git branch -d navbar // navbar branch 삭제

✨ 코스에서 동기분에게 공유받은 시각자료 👉🏼 read more
profile
Front-end Developer. 자바스크립트 파헤치기에 주력하고 있습니다 🌴
post-custom-banner

0개의 댓글