[SW사관학교 정글/8일차 TIL] Git CLI Command

김승덕·2022년 9월 26일
0

SW사관학교 정글 5기

목록 보기
13/150
post-thumbnail

Git CLI Command

조직(organization)에서 브랜치를 나누고 PR하는 방법

0. git clone

git clone은 레파지토리(폴더라고 이해하면 된다)를 복사하여 로컬 레파지토리로 만드는 것이다.
즉 git에 있던 폴더를 자신의 컴퓨터의 하드디스크에 저장하는 것이다.
clone 뒤에는 깃허브에서 클론할 주소를 복사하고 붙이면 된다.

git clone https://github.com/kimseungdeok/DataMining.git

이 작업은 한번만 하면 되고 git checkout maingit pull을 통해 동기화를 진행해야 한다.
checkout은 뒤에 자세히 서술하겠지만 브랜치를 이동할때 쓰는 명령어이다.

1. cd {폴더 명}

cd는 change directory를 말하고, 다른 폴더로 이동하고 싶을 때 사용한다.

2. git checkout -b {브랜치 이름}

checkout은 두가지 기능이 있다.

  • branch 혹은 commit 전환(switch)
  • 내용 되돌리기(restore)

새로운 git 버전에는 각각의 기능이 나누어져 다른 명령어로 만들어졌다.
하지만 여기서는 다루지 않고 checkout의 다양한 사용법을 익히고자 한다.

특정 Branch로 이동

git checkout {Branch Name}
  • 예시
    git checkout exercise/kimseungdeok

특정 Branch 생성 후 해당 Branch로 이동

git checkout -b {New Branch Name}
  • 예시
    git checkout -b exercise/kimseungdeok

특정 branch 에서 파생 branch로 만들어서 해당 branch로 이동

$ git checkout -b {Branch Name} {Base Branch Name}

이 작업은 한번만 하면 되고 git checkout maingit pull을 통해 동기화를 진행해야 한다.
이 내용을 자세히 설명하자면
git checkout main을 통해 main 브랜치로 이동하고
git pull을 통해 변동사항을 pull받는다는 말이다.

3. git add {파일이름}

git에 올릴 파일을 정해서 stage에 올리는 명령어다.

git add *.py

4. git commit

stage에 올라간 파일들을 commit한다.
이는 변경을 기록한다고 생각하면 된다.
협업을 할때는 이러한 변경에서 메시지를 잘 남겨주어야 한다.
따라서 커밋 메시지를 잘 남겨야 한다.

git commit -m '{message}'
  • 예시

    git commit -m'첫번쩨 커밋'

5. git push

push는 커밋한 파일들을 원격 레파지토리에 전달하는 것을 말한다.
원격 레파지토리의 branch를 지정할 수도 있다.
-u, --set-upstream 등의 옵션을 통해 원격 레파지토리의 branch를 지정할 수 있다.

  • 예시
git push -u origin exercise/kimseungdeok

5.1. git push의 옵션 -u

git push 명령어를 날릴 때 마다 매번 저장소명과 브랜치명을 입력하는 게 귀찮게 느껴질 수 있다.
-u옵션을 시용하면 최초에 한 번만 저장소명과 브랜치명을 입력하고 그 이후에는 모든 인자를 생략할 수 있다.

6. pull request

위의 방식으로 push까지 했다면 github의 해당 레파지토리에서 pull request를 만들수 있다.

  • 자신의 branch를 변경한지 얼마 안되었다면 첫 화면에 나타난다.
  • 위쪽 메뉴에서 create pull request를 눌러 만들 수도 있다. 브랜치의 방향에 주의해야 한다.
    - main <- 내 브랜치 방향으로, 즉 compare 쪽이 내 branch가 되도록 해야한다.

추가적인 깃, 터미널 명령어

현재 브랜치 확인

git branch

브랜치 삭제

git branch -d {브랜치이름}

현재 폴더 안의 내용 확인

ls

비어있는 파일 생성

touch {파일명}
  • 예시
    touch text.txt
profile
오히려 좋아 😎

0개의 댓글