[WAFFLE] 0-0 Git Basic

1 minute read

Published:

In this post, basic usage of Git is introduced.

Terms

Repository

  • 파일들과 그 버전 이력을 관리하는 공간
    • local repository : my local computer
    • remote repository : web server such as github, gitlab
  • 로컬 폴더에서 git init을 입력하면 .git 폴더가 생성되고 해당 폴더는 이제 git local repository이며 이 폴더 내의 모든 변경사항은 .git에 저장됨
    $ git init
    

Commit

  • 변경 사항의 가장 작은 단위. 무엇을 바꿨는지 설명하는 메시지와 함께, 코드의 어느 라인이 어떻게 바뀌었는지에 대한 기록
  • 커밋 전에, 여러 변경 사항 중에서 이번 커밋에 포함시킬 파일을 선택
    git add test1.py
    
  • 커밋 전에 커밋할 예정일 파일을 모아둔 곳을 staging area라 함.
  • 이후 명령어를 통해 stage에 있던 변경 사항들을 하나의 커밋으로 묶어 역사에 추가
    git commit -m "회원가입 기능 완성!"
    

분산 시스템

Remote repository를 활용하여 여러 개발자가 동시에 작업 가능. local에서 작업 후 server에 올리는 식으로 작업.

Push

  • Local에서 commit된 변경사항들을 remote repository에 업로드

Pull

  • Remote repository의 데이터를 local로 다운로드

Branch

  • 여러 사람이 동시에 서로 다른 작업을 할 때, 브랜치를 만들어 독립적인 작업 영역을 만듦.
  • 남들의 작업에 영향을 받지 않고 자신의 브랜치에서 작업한 후, 작업이 완료되면 메인 브랜치에 merge한다. branch

기타 기능

Clone

  • Server의 정보를 다운로드 하기 위해 git pull을 하는데, local repository가 없을 경우, 대신 git clone을 이용한다.
    git clone git@github.com:wafflestudio/seminar-2024.git
    

    Remote

  • git pull/push를 할때 remote repository의 위치를 알아야함. git remote은 작업 중인 local repository와 remote repository를 연결.
    git remote add origin https://github.com/nickname/repository-name.git
    
  • origin이라는 이름으로 위 경로에 있는 remote repository를 local repository랑 연결하겠다는 의미. git clone의 경우 이 정보가 자동으로 등록됨.

Fork

  • 많은 사람이 많은 Branch를 따게 되면 헷갈릴 수 있음. github의 Fork 기능을 이용하면 현재 remote repository의 내용을 그대로 복사해서 내 계정의 다른 repository로 생성할 수 있음.
  • 원래 repository의 변경 사항과 상관없이 독립적으로 작업할 수 있고, 아무나 repository에 직접 접근하면 안되는 프로젝트의 경우 Fork를 사용한다. 이 경우, 복제본에서 작업한 후, 승인을 받고 원래 repository에 변경 사항을 적용한다.

Pull request

  • Fork/Branch를 땄을 때 main branch에 변경사항을 적용할 때 승인을 받는 request.

Git usage example

git

  • Fork / git clone / git commit / git push / Pull request

Leave a Comment