18일차

JiHun·2023년 5월 4일

부트캠프

목록 보기
17/56

Git 협업

코드를 효율적으로 관리 해주는 시스템이 Git이다. 다른 시스템도 있지만 Git은 분산형 버전 관리 시스템이다. 버전 관리 시스템이란, 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. Repository는 파일이나 폴더를 저장해두는 곳이다. 로컬, 원격이 있다..

Local Git Repository

내 컴퓨터의 저장소. 다른 사람 컴퓨터의 저장소. 작업공간. 세부분으로 나눠진다.
Untracked => staging area => commit

git init

로컬 디렉토리에 git init을 작성하면, 그 디렉토리에 Local Git repository가 추가된다. 추가하게 되면 local working directory를 Git 관리 하에 들게 된다.

git add

local 디렉토리에 Git Repository를 만들었다면, 파일들의 변경사항을 Git으로 관리할 수 있다. 코드 작성 후, 하나로 모아두는 과정을 거친다. Untracked files를 Stating area에 올리는 과정이다.

  • Staging area 관리하에 둠
    $ git add .: 현재 디렉토리에 있는 모든 파일 add
    $ git add <파일명>

git status

Git Repository가 어떤 상태인지 보여주는 코드다. branch 위치. Untracked files, staging area 등등을 보여준다.

  • 상태확인하기
    $ git status

git commit

staging area에 있는 파일을 commit할 수 있다. 간단한 코멘트로 라벨링하는 작업이다.

  • commit하기
    $ git commit -m "라벨링"

commit한거 취소하기

최근에 올리건 취소하는 거는 $ git reset --soft HEAD^

git log

내 커밋 로그 확인 명령어

Remote Git Repository

원격 온라인 서버 상의 저장소. Remote Git Repository를 다뤄보자. Github에 코드를 올릴 수 있는 원격 저장소가 있다.

  1. Github에서 Remote Repository를 만들고
  2. Local Repository에서 Remote Repository git url을 등록한다.
    $ git remote add <name> <등록할 remote git url>: <name>은 Remote Repository 주소를 대신할 이름 ===> origin
  3. Local Git Reposity에 commit한 내역을 Remote Git Repository에 push한다.
    $ git push <remote> <branch이름>: ex) git push origin main

Fork

기존에 만들어진 프로젝트의 변화를 주고 싶을 때, Repository를 복사하는 것. 서로의 프로젝트의 영향을 미치지 않는다. Fork를 자신의 Remote Git Repository로 복사한다.
이후, git clone을 이용해 자신의 Local Git Repository로 가져온다.

  • repository 가져오기
    $ git clone <복사할 fork된 git url>

이후 push 하거나 Pull request를 보내거나 할 수 있다.
clone한 Repository를 Remote Repository에 올릴 수 있으며, 원본 Repository 주인에게 내가 만든 코드를 pull하라고 요청할 수도 있다.

협업하기

pair가 내 Remote Repository를 fork 했을 때

내 로컬에서 pair를 등록할 수 있다. pair의 Repository Link를 등록한다.

  • remote 연결
    $ git remote add <등록할 pair 이름> <Repository URL for pair fork>
    ex) $ git remote add pair <forked pair's Repository URL>
  • remote 연결됐는지 확인
    $ git remote -v

pair가 Remote Repository에 올린 코드 가져오기

$ git pull <등록된 pair 이름> <branch명>
ex) $ git pull pair main
특정 commit 시점으로부터 각기 다른 commit을 만들면 Pull 했을 때 자동으로 merge 된다.

pair와 서로 변경하다가 동일한 라인을 수정했다면 충돌이 발생할 수도 있다.

그렇다면 둘 중하나 사용할 코드라인을 선택해야한다. 파일을 수정했다면 처음부터 다시 staging area로 추가부터 시작해야한다.
충돌이 해결된 후, staging area에 올라간 파일은 자동으로 commit 메시지가 생성된다.
$ git commit만 적어주면 commit된다.

브랜치

기능별로 잠깐 임시 작업공간 같은 것을 만들어서 원본은 건드리지 않고 안전하게 작업하기 위한 기능.

브랜치 만든 후, 브랜치로 이동

$ git switch -c <브랜치 이름>

브랜치 변경

$ git switch <브랜치 이름>

브랜치 목록과 현재 위치 확인

$ git branch

브랜치에서 하위 브랜치 또 만들기

위와 똑같이 그냥 브랜치 만들 듯이 만들면 된다.
$ git switch -c <브랜치 이름>

하위 브랜치랑 상위 브랜치랑 합치기

먼저 상위 브랜치로 이동 후, 브랜치 병합하는 명령어를 입력한다.
$ git merge <하위 브랜치 이름>

브랜치 push

$ git push origin <브랜치 이름>

브랜치 작업 임시 저장

$ git stash

profile
안녕하세요. 프론트엔드 개발자 송지훈입니다.

0개의 댓글