ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    댓글

Designed by Tistory.