Terminal & Git Hub

정승렬·2022년 8월 28일
0

자주쓰는 터미널 명령어

ls: 현재 위치의 파일 및 디렉토리 리스트
(ls -a): 현재 위치의 숨긴파일까지 보기
cd: 디렉토리 위치 변경 (ex: cd document)
pwd: 현재 위치 디렉토리 위치 출력
mkdir: 디렉토리 생성
..: 상위 디렉토리로 이동

Git Hub

Git의 구조

  • Working Directory: 개발자의 현재 시점으로 소스코드를 수정하며 개발하는 공간을 의미
  • Staging Area: Working Directory에서 작업한 파일을 Local Repository에 전달하기 위해 파일들을 분류하는 공간
  • Local Repository: 로컬 저장소이며 작업한 파일들을 저장해두는 내부 저장소 (.git 폴더)
  • Remote Repository: 원격 저장소이며 인터넷으로 연결되어 있어 있는 외부 저장소 (웹 페이지에서 보이는 공간)
  • Branch: Remote Repository의 현재 상태를 복사하여 master 브랜치와 별개의 작업을 진행할 수 있는 공간 (보통 브랜치를 생성하여 개발을 진행하고 개발을 완료하면 master 브랜치에 병합하여 개발 완료된 소스코드를 합침)
  • Head: 현재 작업중인 브랜치의 최근 커밋된 위치
  • Index: Staging Area를 의미

Git 용어 정리

  • branch

    개발의 한 갈래
    repository를 생성하면 main branch가 생성되고, 그 하위 branch에서 기능을 구현 후 add, commit, push의 과정을 거쳐서 remote repository에 변경된 내용을 올리거나 합친다

  • repository

    local repository : 현재 사용중인 pc의 저장소
    remote repository : 원격의 프로젝트 저장소

  • add

  • commit

    1. 데이터가 저장되온 히스토리의 한 지점
    2. 현재 프로젝트의 상태를 스냅샷으로 저장하는 행동
  • push

  • pull

  • fech

  • merge
    add commit push pull fech merge

Git에 commit하기

목차

  1. 새로운 repository 생성
  2. 1번 이후 변경 사항이 있을 때
  3. branch, merge 사용법
  4. 충돌 시 해결 방법
  5. 풀리퀘스트 보내기

1. 새로운 repository 생성

Github에서 새로운 repository 생성 후에 로컬에서 작업한 내용을 올리기 위한 명령어 순서

명령어 입력 순서
git init
git add .
git commit -m “commit message”
git remote add origin repostory주소
git push -u origin master

  1. 현재 작업중인 폴더에서 git을 사용할 수 있도록 해주고
  2. 폴더 내의 모든 파일(.이 모든 파일을 의미)을 gitstaging area에 추가
  3. 커밋과 동시에 -m으로 커밋 메세지 작성
  4. 원격 저장소, 즉 github repository 주소origin 이라는 이름으로 등록
  5. origin이라는 원격 저장소에 master 브랜치에 푸시, 이때 -u를 쓴다면 다음번 부터 git push만 입력해도 originmaster로 푸시가 된다.

2. 1번 이후에 새로운 변경 사항이 있을 때

1번 과정 이후에 변경 사항이 있어 push를 하고 싶을 때 순서

명령어 입력 순서
git add .
git commit -m “commit message”
git push origin main

과정은 1번과 같으나 init과 원격 저장소 등록을 할 필요가 없다

3. branch, merge 사용법

협업을 할 때 많이 쓰는 기능 branch, merge 이름 그대로 가지를 치고, 합치는 방법이다

명령어 입력 순서
git branch 브랜치이름설정
git checkout 브랜치이름
git add .git commit -m “commit message”
git push origin 브랜치이름

  1. 새로운 브랜치를 생성(기존 브랜치는 master)
  2. 생성한 브랜치로 이동
  3. 모든 파일 추가
  4. 커밋, 메세지 작성5번으로 origin 저장소의 새로운 브랜치에 푸시브랜치에 푸시까지 완료 한 뒤

git checkout master
git merge 브랜치이름

위의 과정으로 master에 새로운 브랜치를 merge할 수 있다

4. 충돌 시 해결 방법

pull이나 push를 했을 때 원격저장소의 내용과 로컬폴더내의 내용중 같은 라인에 다른 내용이 있다면 충돌 발생

  • 터미널 로그에 충돌이 난 파일이 표시되니 직접 수정 후 다시 pull이나 push를 실행
  • 가장 좋은 방법은 협업자들끼리 역할을 완전히 분담해 애초에 같은 코드를 건드리지 않는 것이지만,
  • 어쩔 수 없이 그렇게 된다면 항상 작업 전에 pull을 습관화하면 충돌을 최소한으로 줄일 수 있다.

5. 풀 리퀘스트 보내기

오픈소스를 만들 때 가장 많이 쓰는 방법
내가 push한 내용을 repository의 마스터 권한을 가진 사람에게 pull 해달라고 요청하는것
우선 참여하고 싶은 repository에 들어가 오른쪽 상단의 fork로 나의 repository에 복사해옴

명령어 입력 순서
git clone 원본 repository주소
git remote add 나의repo이름설정 나의 repository주소
git remote -v
git pull origingit checkout -b 브랜치이름(이슈)설정origin/master
git push 나의 repository이름 브랜치이름

  1. 원본 repo의 코드들을 나의 로컬환경에 클론해온다.
  2. 포크해온 나의 repository주소를 새로운 이름으로 추가해준다.
  3. 현재 등록되어있는 원격저장소가 어떤게 있나 확인해본다. 아마 origin이라는 이름의 원본 repository주소와 새로 설정한 이름의 나의 repository주소가 있을 것이다
  4. 혹시 모를 코드변화가 있을 수 있으니 한번 pull해서 확인해준다
  5. 원본 repository에 이슈명이나 키워드로 브랜치를 생성하고 이동한다

모든 작업 후에

  1. 나의 repository에 푸시한다

  2. 위의 과정 이후에 github에서 fork한 나의 repository에서 방금 푸시한 브랜치명을 선택 하면 옆에 Pull request 버튼이 생기고, 절차에 따라 누르면 풀리퀘스트가 진행된다.

여기서도 충돌이 발생할 수 있으니, 코드를 보며 적절히 수정해주면 된다.

0개의 댓글