-
Git과 Github을 파헤쳐보자.개발 2022. 8. 8. 10:05
아직도 git과 github이 헷갈리시는 분들이 계시다면 이 글을 주목해주세요!
개발자로 일을 하게 되면 '버전관리'의 필요성을 일을 하면 할 수록 느끼게 됩니다.
버전관리를 할 수 있는 툴에는 svn, git등이 있는데요,
입사한 첫 회사에서는 svn을 썼었고, 두 번째 회사에서는 git을 사용했습니다.
svn은 git보다 처음에는 훨씬 간단하고 쓰기 쉽지만, git을 쓸 줄 아는 게 뭔가 더 간지도 나고, 익숙해지면 더 많은 일들을 할 수 있기 때문에 git을 꼭 배우는 것을 추천드립니다.
그리고 많은 좋은 개발 회사들은 git과 github을 사용하니, 이 둘을 같이 사용할 줄 아는 게 좋은 개발자가 되기 위한 첫 걸음이라고 볼 수 있습니다.
여기서 첫번째 질문 git과 github은 같은 게 아니었나요?
git과 github을 같이 쓰는 경우가 많아서 둘을 헷갈리는 경우가 많지만, github은 git을 조금 더 잘 쓰기 위한 서비스입니다.
대표적인 예시로, 개발자로 일을 하거나 오픈소스에 기여할 때 PR(pull request)을 하게 되는 경우가 있는데, PR은 git의 기능이 아닌 github의 기능입니다.
두번째 질문! git을 왜 쓸까요?
git은 내가 작업한 작업들 간에 undo와 redo를 편하게 할 수 있게 해주고, 다른 사람과 협업을 편하게 도와주기 때문에 씁니다.
git이 버전관리를 위한 것이라고 했기 때문에 undo, redo를 편하게 해준다는 것은 이해가 쉽게 되실 것 같습니다.
협업에 도움이 되는 것은 git이 버전관리 외에 동기화에도 사용되기 때문입니다.
여러명이 협업을 할 때는 공동으로 작업하는 저장소도 있을 것이고, 개인적으로 작업하는 저장소가 있을텐데, 공동 저장소와 개인적인 작업의 동기화를 할 때 git을 사용할 수 있습니다.
그렇기 때문에 git 은 기본적으로 내 컴퓨터의 저장소와 다른 곳의 저장소를 동기화해주는 프로그램이라고 생각해주시면 됩니다.
Git의 대표적인 명령어에 대해 알아봅시다.
git init
초기화를 하고, git을 사용할 수 있게 해줍니다.
이 명령어를 입력하면 .git 폴더가 만들어집니다.
git status
유용한 명령어들과 함께 현재 상태를 확인할 수 있습니다.
이 명령어를 자주 사용하는 것이 좋습니다.
git remote add <저장소명> <링크>
이 명령어를 통해 동기화를 하기 원하는 github의 레포지토리에 내가 원하는 저장소명으로 (upstream과 origin을 주로 사용하게 됩니다.) 연결할 수 있게 됩니다.
이 때 링크는 동기화를 원하는 깃헙의 레포지토리에서 초록색 Code를 클릭하고, SSH를 클릭했을 때 나오는 링크를 사용하면 됩니다.
git remote
등록한 원격 저장소들의 목록을 확인할 수 있습니다.
git fetch <저장소명>
이 명령어로 원격 저장소들의 파일들을 가져올 수 있습니다.
git switch -c <브랜치명> <참고할 브랜치>
참고할 브랜치를 참고해서 원하는 브랜치명으로 브랜치를 생성할 수 있습니다.
git diff
바뀐 내용을 확인할 수 있습니다.
git add .
변경 사항을 staging할 수 있습니다.
git commit
커밋을 할 수 있습니다.
커밋 제목을 쓰고 한 줄을 띄고 본문을 작성합니다.
이 때 커밋 메세지는 왜 이런 변화가 있었는 지에 대한 내용을 추가해두면 좋습니다.
git push <저장소명> <브랜치명>
원격 저장소에 커밋한 내용을 반영할 수 있습니다.
git restore <file>
파일을 복구할 수 있습니다.
git restore --staged <file>
스테이징하기 전의 상태로 되돌릴 수 있습니다. (git add <file>을 하기 전의 상태로 돌아갑니다.)
git log
작업 내역을 확인할 수 있습니다.
git log --graph
작업 내역을 시각적인 정보와 함께 확인할 수 있습니다.
추가적으로 github에서 명령어 없이 레포지토리를 만들기, 커밋 등등을 할 수 있는데요, 깃헙에서 레포지토리를 만들게 된다면 README파일과 .gitignore 파일을 생성해주시는 것이 좋습니다.
git을 잘 사용하려면 터미널과도 친해져야 하는데요,
터미널에서 자주 쓰이는 명령어와 vim 사용법에 대해서도 간략히 알아봅시다.
code .
현재 위치에서 VScode를 오픈합니다.
open .
현재 위치에서 finder를 오픈합니다.
mkdir <directory>
디렉토리를 만들 수 있습니다.
ls
디렉토리 내부에 있는 디렉토리나 파일들의 목록을 확인합니다.
ls -al
디렉토리 내부의 디렉토리나 파일들의 정보까지 조금 더 자세히 확인합니다.
pwd
작업 위치를 알려줍니다.
cd <directory>
원하는 디렉토리로 이동합니다.
cd ..
상위의 디렉토리로 이동합니다.
rm <file>
파일을 삭제합니다.
rm -rf <directory>
디렉토리의 모든 내용을 삭제합니다.
exit
터미널을 닫을 때는 x를 클릭해서 닫기보다 exit을 이용해서 나가는 것이 좋습니다.
vim 사용법
git commit 명령어를 치면 vim 에디터가 열리게 됩니다. 이 때 아무리 입력을 하려고 해도 입력이 안되는데요, i를 눌러 입력모드로 전환을 해주시면 됩니다.
i
입력모드로 전환합니다.
esc
입력모드에서 벗어납니다.
:q
에디터를 닫습니다.
:q!
에디터를 강제 종료합니다.
:wq
변경된 내용을 저장하고 에디터를 닫습니다.
x
입력모드가 아닐 때 delete키처럼 작용하여 커서 뒤의 내용을 지웁니다.
u
입력모드가 아닐 때 undo합니다.
자주 사용하게 되는 git flow
아래와 같은 명령어들을 반복 사용하게 되므로 익숙해지시면 좋습니다.
디렉토리 생성
디렉토리로 이동
git init
git remote add <저장소명> <링크>
git fetch <저장소명>
git switch -c <브랜치명> <참고할 브랜치>
개발하기
git add .
git commit
git push <저장소명> <브랜치명>
git fetch <저장소명>
git switch -c <브랜치명> <참고할 브랜치>
개발하기
git add .
git commit
git push <저장소명> <브랜치명>
...반복
'개발' 카테고리의 다른 글
[인텔리제이 팁] wildcard * import를 막고 싶을 때 (0) 2022.09.25 화면 가르기 (0) 2022.09.02 시장의 판도를 바꾸는 Apple silicon M1 (0) 2022.08.11 백업용 조립컴을 만들어보자! (0) 2022.08.10 iTerm 세팅하기 (0) 2022.08.08