[Git] Git 이해하기 (기본 명령어)

윤경·2022년 2월 4일
0


Github의 역할

  • 소스코드의 버전 관리
  • 소스코드 공유
  • 협업의 공간

Github 가입만 했다고 사용할 수 있는 것이 아니라 Git을 따로 다운받아야 한다.
Git을 다운 받았다면 Git bash에서 환경설정을 한다.

  1. 사용자 이름 설정하기
    git config --global user.name "[name]"
  2. 이메일 설정하기
    git config --global user.email "[email]"
    (여기서 [email]은 깃허브 가입시 이메일)
  3. 정보 확인하기
    git config --list
    (여기서 이름과 이메일을 확인하기)

🐱 깃허브 사용하기

그리고 실제로 파일을 리포지토리에 업로드 할 때
가장 처음 업로드 할 시에는
git init → "깃 사용할 준비가 되었음"
이렇게 초기화가 필요하다.

이런 과정은 깃허브에서 리포지토리를 생성하면 나와있다.
그것에 대한 설명을 덧붙이자면 아래와 같다.

git remote add origin [리포지토리 주소] → "깃허브 리포지토리와 나의 로컬 프로젝트를 연결한다."

이때, 잘 연결되었는지 확인하고 싶다면 아래와 같은 명령어를 사용한다.
git remote -v

그 이후라면 모든 파일을 추가할 땐
git add .
올리고 싶은 파일이 있을 땐
git add [파일명] (Ex. git add hello.cpp)
으로 업로드 해주면 된다.

만약 현재 상황을 확인하고 싶다면 해당 명령어로 확인할 수 있다.
git status

그리고 아래와 같이 커밋 메시지를 작성한다.
git commit -m "[올릴 메시지]"

그리고 PUSH하면 된다.
git push origin main
(참고로 main이 아니라 다른 브랜치를 사용한다면 그 브랜치명을 적으면 된다.)

늘 사용하는 명령어

  • git add [파일명]
  • git commit -m "[올릴 메시지]"
  • git push origin main

👨‍👩‍👧‍👧 팀 프로젝트를 할 때에는?

우선 프로젝트를 클론할 파일을 지정해 터미널에서 그 경로로 이동한다.

그리고 Github의 해당 프로젝트 주소를 복사해온 후 clone한다.
git clone [주소] [폴더이름]

이때, 폴더 이름은 넣어도 되고, 넣지 않아도 되는데 넣게되면 그 폴더가 새로 생성되며 그 안에 코드들이 다운로드가 된다.

폴더 이름을 넣지 않을 경우에는 깃허브 프로젝트 이름 그대로 폴더가 자동 생성되어 그 안에 코드들이 다운로드된다.

그리고 팀 프로젝트라면 나는 더이상 main branch가 아니다.
나의 브랜치를 생성해주어야 한다.

git checkout -b [브랜치 이름]

이제 위의 과정과 같다.
git add [파일명]
git commit -m "[커밋메시지]"
git push origin [브랜치 이름]

이렇게 하면 이제 깃허브로 돌아오면 Compare & pull request(PR) 라는 기능이 나타난다.

이제 그걸 누르고 필요한 멘트를 적어 날린다.
이 과정은 메인에 적용해달라는 요청이다.

메인 브랜치에 적용되는 과정은 해당 책임자가 PR을 확인하고, Merge pull request를 해주면 이제 main 브랜치에 즉, 최종 코드에 PR 날린 코드가 적용되는 것이다.

그럼 이걸 여러 사람이 하게되면 내가 가지고 있는 코드가 가장 최근 코드가 아닐 수도 있게된다.

우선, 내가 작업하고 있던 코드가 사라지면 안되므로 저장해준다.
git add [파일명]
git commit -m "[커밋메시지]"

그리고 main 코드를 PULL 해온다.
git pull origin main

그런데 이렇게 기본 pull을 하게되면 불필요한 merge commit이 생성된다.

이를 방지하기 위해서는 ⭐️git pull --ff-only 이렇게 옵션을 주어 pull 해주면 된다.

그럼 이제 내가 가진 코드가 최신 버전의 코드가 되었고, 내가 작성한 코드도 날라가지 않았으므로 다시 PUSH 해준다.
git push origin [브랜치 이름]

브랜치끼리 이동하는 방법
git checkout [브랜치 이름]


🔗참고 영상1, 2

profile
개발 바보 이사 중

0개의 댓글