Day +18

비트·2023년 5월 4일
0

CodeStates

목록 보기
18/54
post-thumbnail

Local Git repository


  • (git init) : 코드를 저장할 디렉토리를 만들고 해당 디렉토리에 로컬 Git repository를 생성
  • (git add) : 코드를 작성하고 저장하는 공간, 작업 공간(work space)의 파일 및 디렉토리를 git의 관리하에 있는 상태로 올려줄 수 있다.
    • 이 영역이 staging area`
  • staging area의 파일은 commit이 가능
    • (git commit) : commit으로 local Git repository에 내 코드를 기록할 수 있다.


git init

  • 앞서 설명한 것처럼, 일반적인 폴더에 Git repository를 추가하면 개발자는 Git을 이용하여 자신의 프로그램 버전 관리를 할 수 있다.
    • git init 명령어를 입력하면 됩니다.

  • 작업하고자 하는 디렉토리를 새로 생성하고, 디렉토리 내부에 html 파일과 css 파일을 각각 생성.
  • 원하는 위치에 디렉터리를 생성.
  • 내부에 index.html, style.css 파일을 각각 생성해 보내자.
    • // 디렉토리 생성
      mkdir ~/Desktop/codestates
      cd ~/Desktop/codestates
      // 디렉토리 생성
      mkdir my-app
      // 디렉토리 이동 (change directory)
      cd my-app
      // 파일 생성
      touch index.html style.css
  • 생성된 파일 위치에서 git init을 입력하면 Git 리포지토리가 my-app 디렉토리에 생성된다.


git add

  • 로컬 환경에 있는 디렉토리에 Git 리포지토리가 생성되었기 때문에, 이제 index.html, style.css의 변경사항을 Git으로 관리할 수 있다.
  • 각각의 파일에 코드를 작성한 후, 이 코드를 하나로 모아두는 과정을 거치게 되는데 이 공간을 staging area라고 한다.

  • staging area에 코드를 옮기는 명령어는 git add <경로명>. 터미널의 현재 위치가 Git 리포지토리를 생성한 my-app 디렉토리라면, git add index.html , git add style.css 명령어를 사용하면 된다.

  • 만약 현재 경로에서 변경이 감지된 모든 파일을 한 번에 추가하려면 git add .을 입력

    • (.은 현재 경로를 의미합니다.)

    • git add index.html
       git add style.css
      
       // 또는
      
       git add .

git status

  • staging area로 잘 옮겨졌는지 확인하기 위해서는 git status 명령어를 입력.

  • 변경 사항이 staging area에 잘 옮겨졌다면 아래와 같이 파일명이 초록색으로 표시되는 것을 볼 수 있습니다.



git commit

  • staging area에 있는 파일은 commit이 가능.

commit은 어떻게 하는 게 좋을까?

  • commit은 작은 단위로 자주 하는 게 좋습니다. GIt commit 기록이 상세하게 되어있으면 아래와 같은 장점이 있다.

    • 코드를 잘못 적은 경우에, 이전 기록을 더 쉽게 복원할 수 있다.
    • 누가 해당 코드를 수정했는지 쉽게 파악할 수 있다.
  • commit 메시지는 짧고 간결하게 사실적으로 작성한다.

    • Git commit 메시지는 동료 개발자가 참고할 수 있기 때문에 짧고 간결하고 사실적이어야 한다.

    • // Good: 기능(feat) 구현을 확인 가능, 정확한 기술 용어 사용, 짧고 간결함
       git commit -m "feat: 인스타 게시글 조회 페이지네이션"
      
       // Bad: 커밋 타입 구분 X, 만연체, 사실 여부를 판단하기 어려운 "효율성"에 대한 코멘트
       git commit -m "더 효율적인 인스타 게시글 조회 기능 구현함"
      
       // Very Bad: 어떻게 나은 형식인지 판단하기 어려움, 어떤 기능인지 확인이 어려움
       git commit -m "좀 더 나은 형식"



Remote Git repository

원격 Git 리포지토리란?

  • 원격 Git 리포지토리(줄여서 원격 리포지토리)는 자신의 컴퓨터(로컬 환경) 작업 공간에 위치하지 않는 Git 리포지토리
  • 개발에 대해서 검색해 보면 쉽게 접할 수 있는 Github의 여러 리포지토리가 대표적인 원격 리포지토리.
  • 공개된 Git 리포지토리의 경우, 여러 사람이 함께 공유할 수 있다.

원격 Git 리포지토리 다루기

  • 새로운 애플리케이션을 제작하기 위해서 원격 Git 리포지토리를 만들고 다루는 과정
    1. Github에서 원격 리포지토리를 생성.
    2. 로컬 리포지토리에 원격 리포지토리 git url을 등록 (git remote add)
    3. 로컬 Git repository에 기록한 내역을 원격 Git repository에 push (git push)

새로운 Github repository 만들기

  • Github로 이동하여, 새로운 GIthub repository를 만듭니다. 홈페이지로 이동해서 왼쪽 상단의 New 버튼을 누르면 된다.
  • 아래 그림과 같이 원하는 리포지토리 이름을 입력하고, Public / Private 여부를 체크
    • 이름은 가능하면 로컬 리포지토리 디렉토리 이름과 같게 설정하면 좋습니다.
    • 만약 오픈소스 코드가 아니고, 공개하지 않는다면 Private를 체크하고 생성하면 됩니다.
    • Owner가 자신의 아이디인지 재확인합니다.

git remote

  • git remote 명령어는 원격 리포지토리를 다루기 위한 git 명령어

git remote add <name> <URL>

  • git remote add는 로컬 리포지토리에 원격 리포지토리 주소를 등록하는 명령어
  • 쉽게 원격 리포지토리를 파악하기 위해 이름을 지정해 줄 수 있고, 이름 뒤에 원격 리포지토리 주소를 적으면 작동
  • <name>: 앞으로 로컬 리포지토리에서 원격 리포지토리 주소를 대신할 이름 (ex: origin)
  • <URL>: 원격 리포지토리 주소 (ex: git@github.com:codestates-seb/agora-states-fe.git)

원격 리포지토리 연결하기

  • 새로운 Github 원격 리포지토리를 만들면 아래 화면을 볼 수 있다.
  • 파란색 부분은 로컬 환경(자신의 컴퓨터 내 디렉토리)에서 새로운 Git 리포지토리를 생성하고 다루기 위한 명령어
  • 빨간색 부분은 로컬 리포지토리를 원격 리포지토리와 연결하고 다루기 위한 명령어

git remote add로 원격 리포지토리 연결하기

  • 자신이 새롭게 만든 GIthub 리포지토리의 정보를 기반으로 로컬 리포지토리와 원격 리포지토리를 연결
    • git remote add
      • git remote -v : 명령어로 원격 리포지토리가 잘 연결되었는지 확인

git push

  • git push는 로컬 리포지토리에 기록한 내역을 원격 리포지토리로 옮기는 작업.
  • git push는 새롭게 생성한 원격 리포지토리에 기존 커밋 기록을 옮기거나, 기존 원격 리포지토리에서 일부 변경된 내용을 옮기는 데 사용할 수 있다.

git push <remote> <branch>

  • 다른 CLI 명령어처럼, git push도 매개변수를 가질 수 있다.
  • <remote>에는 원격 리포지토리의 이름을 입력하고, <branch>에는 브랜치 이름을 입력
    • 예를 들어, 로컬 리포지토리의 기록을 원격 리포지토리 origin의 main 브랜치로 push하려면 git push origin main을 입력

git push로 원격 리포지토리에 로컬 리포지토리 변동 사항 업데이트하기

  • git remote add로 로컬 리포지토리에 원격 리포지토리 주소를 잘 등록했다면 이제 git push를 할 수 있다.
  • 빨간색 박스의 git push -u origin main 명령어를 입력.
  • 이 명령으로 원격 리포지토리 origin의 main 브랜치에 로컬 리포지토리 main 브랜치 내용을 업데이트하게 됩니다.



Fork 하기

Fork란?

  • 포크는 기존의 잘 만들어진 프로젝트에 변화를 주거나 새로운 것을 시도를 해보기 위해 리포지토리를 복사하는 것을 의미.
  • 기존의 프로젝트에 영향을 미치지 않기 때문에 서로의 프로젝트에 영향을 주지 않는다.
  • 또한 라이선스까지 함께 복사가 되기 때문에, 공개되어 있고 라이선스 명시가 제대로 되어있는 프로젝트는 라이선스만 잘 지키면 포크해도 문제가 없다.

포크 후 할 수 있는 일

  • 자신의 컴퓨터의 로컬 리포지토리로 git clone 하여 따로 개발하기

  • public 프로젝트에 버그 수정 및 기능 추가 요청 (push & pull request)

  • public 프로젝트에서 새로 업데이트 된 내용을 pull

Clone

  • local 환경으로 가지고 오기(clone)
profile
Drop the Bit!

0개의 댓글