18, 19일차 - Git 협업, repository 배포*제출

dudu00·2022년 11월 15일
0

codestates

목록 보기
18/25

Git ‘분산형 버전 관리 시스템'
Git에서 코드를 저장하는 공간을 리포지토리
리포지토리는 자신의 컴퓨터의 작업 공간(local)에 위치한 로컬 Git 리포지토리와, Github 등의 원격(remote) 공간에 위치한 원격 리포지토리로 구분할 수 있다.

  • 과제에서 배포하기 안되어서 엄청 애먹었는데 username.github.io 로 리파지토리를 만들어야 자동으로 올려준다. 기존의 repository명(fe-sprint-my-agora-states)으로 깃허브 setting에 repository name명을 이렇게 설정했더니 배포 XX..

  • commit -m "메시지 입력" 에서 " " 안에 내용 나중에 pull request 할 때 제목으로 설정되기 때문에 이 부분 SEBFE_42... 과제 제출합니다 라는 식으로 작성

  • fork하고 로컬환경으로 다운받은 거는(git clone) 다시 작업 후 git add로 원래 하던 것처럼 추가해주고 git status로 staging area 확인해준다 그 후 다시 commit 해주고 git remote -v로 연결되있는지 확인해준다(이때는 이미 연결되있다) 그 후 다시 push 후 pull request

  • fork하고 clone한 다음에도 'git remote add ~' 해야 하나요? > 안해도 된다

    (fork하고 clone한 다음 git remote -v로 확인해보면 포크받아온 내 레포지토리가 origin으로 추가되어 있다.)
  • git config --global init.defaultBranch main

    (기본 브랜치명이 master일 경우 main으로 변경해주는 방법)

Local Repository
: 내 컴퓨터의 저장소
: 내 개인 전용 저장소
Remote Repository
: 원격 온라인 서버 상의 저장소
: 여러 사람이 함께 공유 가능

기타 참고 문제

  • vs코드로 commit 하고 +,- 써서 staging area 하고 그 밑에 영역 왔다갔다 하는 부분 학습도 해보자

  • git rm--cached index.html하면 status에 올라갔던 것들 취소할 수 있다.

  • 특정 commit 시점으로부터 각기 다른 commit을 만들면, 기본적으로 다음과 같이 자동으로 merge가 된다.

  • git brunch
    ㅡ> main // 현재 위치하고 있는 브런치가 나온다

  • 배포
    ㅡ> 만든거 링크 공유

1. 로컬 리퍼지토리에서 올린 파일에서 오타를 발견했는데 불필요한 커밋 대신 커밋한 기록을 되돌려서 이전으로 돌아가는 방법
(하고 나면 staging area가 아닌 그 밑에 영역으로 간다? untracked files)
ㅡ> get reset HEAD~1, get reset HEAD^1, get reset HEAD^

2. 내 커밋 로그를 확인하는 명령어
ㅡ> git log

3. local working directory를 Git의 관리 하에 들어가게
ㅡ> git init

4.
페어가 내 Remote Repository를 Fork 했다.
페어의 Remote Repository를 내 Local에 pair라는 이름으로 등록해야겠어요.
페어의 리파지토리 링크는 https://github.com/pair/test
ㅡ> git remote add pair https://github.com/pair/test

5. 리모트 연결이 완료되었으니 페어와 나누어서 작업을 진행했습니다. 내 commit을 Push하기 전에 페어가 작업해서 본인의 Remote Repository에 올려 놓은 내용을 합치려고 합니다. 페어의 코드를 내 Local로 받아올 수 있을까요?
ㅡ> git pull pair(origin 같은 이름) main(위치)

Local Git repository

  1. 코드를 저장할 디렉토리를 만들고 해당 디렉토리에 로컬 Git repository를 생성
    (git init)
  1. 코드를 작성하고 저장하는 공간, 작업 공간(work space)의 파일 및 디렉토리를
    git의 관리 하에 있는 상태로 올려줄 수 있다.
    (git add) 이 영역이 staging area
    터미널의 현재 위치가 Git 리포지토리를 생성한 디렉토리라면 git add 파일명 을
    입력해주면 된다
  1. staging area의 파일은 commit이 가능.
    commit으로 local Git repository에 내 코드를 기록할 수 있다. (git commit)

    staging area로 잘 옮겨졌는지 확인하기 위해서는 git status 명령어를 입력
    빨간색 표시는 옮겨지지 않았다는 뜻(초록색 O)
    git commit -m "메시지 입력"
    git status로 기존과 변경된 파일들이 어떤 것이 있는지 확인
  • git init으로 work space 만들어주고 add로 git 관리 하에 속하도록
    staging area 해주고 commit으로 local repository에 내 코드 기록

Remote Git repository

  1. Github에서 원격 리포지토리를 생성.
  2. 로컬 리포지토리에 원격 리포지토리 git url을 등록. (git remote add)
  3. 로컬 Git repository에 기록한 내역을 원격 Git repository에 push. (git push)

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

git remote add <name> <URL>
<name>: 앞으로 로컬 리포지토리에서 원격 리포지토리
주소를 대신할 이름 (ex: origin)
<URL>: 원격 리포지토리 주소
(ex: git@github.com:codestates-seb/agora-states-fe.git )

깃허브에서 new repository 만들 때 맨 위 command line 보면서 참고하기(유어 클래스에도 나와 있음)
git remote -v 명령어로 원격 리포지토리가 잘 연결되었는지 확인

git push <remote> <branch>
<remote> 에는 원격 리포지토리의 이름을 입력하고,
<branch> 에는 브랜치 이름을 입력

예를 들어, 로컬 리포지토리의 기록을 원격 리포지토리 origin의 main 브랜치로 push하려면 git push origin main 을 입력

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

git remote add 로 로컬과 원격 repository 서로 연결하고

git push -u origin main 명령어를 입력. 이 명령으로 원격 리포지토리 origin의 main 브랜치에 로컬 리포지토리 main 브랜치 내용을 업데이트하게 된다.

fork

리포지토리를 복사하는 것
보통 Github 원격 리포지토리를 자신의 Github 원격 리포지토리로 포크
local 환경으로 가지고 오기(git clone). 깃 허브에 클론 있음

배포

Github Page 기능을 활용하면 간단하게 배포 작업을 할 수 있다.

Github Page 기능을 활용하기 위해서, 포크한 자신의 리포지토리로 이동.
포크한 리포지토리는 codestates/fe-sprint-my-agora-states 가 아니고, {깃허브 아이디}/fe-sprint-my-agora-states와 같이 자신의 깃허브 아이디가 작성되어 있다.

1. Setting 메뉴로 들어간다.

2. Setting 메뉴에서 Page 메뉴로 이동

3. 배포하고자 하는 브랜치를 정합니다. 보통의 경우 default 브랜치인 main 브랜치를 선택

제출

  1. 코드스테이츠 리포지토리(codestates/fe-sprint-my-agora-states)를 자신의 리포지토리({깃허브 아이디}/fe-sprint-my-agora-states)로 포크
  2. 포크해온 리포지토리({깃허브 아이디}/fe-sprint-my-agora-states)를 로컬 리포지토리로 클론
  3. 로컬 리포지토리에서 나만의 아고라 스테이츠 작업을 완료.
  4. 로컬 리포지토리의 코드를 포크해온 원격 리포지토리({깃허브 아이디}/fe-sprint-my-agora-states)로 push
  5. 포크해온 리포지토리({깃허브 아이디}/fe-sprint-my-agora-states) 코드스테이츠의 리포지토리(codestates/fe-sprint-my-agora-states)로 Pull request

4. 로컬 리포지토리의 코드를 포크해온 원격 리포지토리({깃허브 아이디}/fe-sprint-my-agora-states)로 push

5. 포크해온 리포지토리({깃허브 아이디}/fe-sprint-my-agora-states) 코드스테이츠의 리포지토리(codestates/fe-sprint-my-agora-states)로 Pull request

pull request 란 자기가 fork해온거 수정해서 다시 pull을 해서 올리는거다.
즉. 내가 이렇게 수정했는데 어때 한번봐봐 하고 그 관리자가 보고 괜찮으면
내꺼 적용해서 바꾸는 식으로 하는거.
( 이거 적용 가능? 물어본다고 생각 )
자기꺼에 push를 해야지 pull request 보낼 수 있다

포크한 자신의 fe-sprint-my-agora-states 리포지토리로 이동해서 아래 내용을 확인.

내 커밋이 내 Github 리포지토리에 적용되었는지 확인.
포크한 나의 리포인지 확인합니다.

풀 리퀘스트 방향이 코드스테이츠 ← 자신인지 확인하고, 코드 변경 내역을 점검하고 pull request를 진행

profile
성장일지

0개의 댓글