git 커밋, 푸쉬, 깃블로그의 유혹

sonny·2024년 10월 22일
3

TIL

목록 보기
18/48

git 이란?

형상 관리 도구 중 하나이다.

형상관리 도구는 소프트웨어를 개발하는 과정에서 발생하는 변경사항을 체계적으로 관리하기 위한 도구라고 한다.

그리고 깃허브는 깃 저장소를 온라인에서 관리할 수 있게 해주는 웹 기반 플랫폼인데, 깃을 사용하면 원격 저장소에 깃으로 관리하는 프로젝트를 업로드 하고 다른 협업자들과 쉽게 협업도 가능하다.


GitHub 사용 시 자주 쓰는 Git 명령어를 정리해봤다. 나중에 내가 보려고...

Git 리포지토리 초기화 및 설정

git init

로컬 폴더에서 새로운 Git 리포지토리를 생성해준다.


GitHub 리포지토리 클론 (복제)

git clone https://github.com/username/repository.git

GitHub에 있는 리포지토리를 로컬로 복제해준다.


파일 추가 및 커밋

git add .
git commit -m "커밋 메시지"

git add . 명령어로 변경된 파일을 스테이징하고, git commit -m "메시지" 로 커밋한다.


원격 리포지토리 설정 및 클론 차이

git remote add origin https://github.com/username/repository.git

로컬 리포지토리를 원격 리포지토리(GitHub)와 연결한다.

여기서 드는생각. 저거 clone이랑 비슷한데..?

그래서 알아보았다.

git clone : 원격 리포지토리를 복사하는 과정
목적 : 원격 저장소에 있는 리포지토리를 처음으로 로컬에 복사(다운로드)해 오는 작업이다.
기능 : git clone을 사용하면 원격 리포지토리의 모든 파일과 커밋 이력, 브랜치 등을 로컬에 복제한다.

자동으로 remote 설정 : git clone을 하면 원격 리포지토리가 자동으로 설정되며, 기본적으로 origin 이라는 이름으로 원격 리포지토리와 연결된다.

git clone https://github.com/username/repository.git

이 명령어는 원격 리포지토리의 파일을 로컬에 복사하고, origin이라는 이름으로 원격 리포지토리와의 연결을 자동으로 설정합니다. 원격 저장소를 처음 가져오는 경우 사용.

git remote add origin : 기존 프로젝트에 원격 저장소를 연결
목적 : 로컬에 이미 존재하는 프로젝트에 원격 저장소를 새롭게 연결하기 위한 작업.
기능 : 로컬 리포지토리에 원격 저장소를 수동으로 추가하여, 나중에 git push, git pull 등의 명령어로 원격 저장소와 상호작용할 수 있게 해준다.

git remote add origin https://github.com/username/repository.git

이 명령어는 이미 로컬에 있는 프로젝트를 https://github.com/username/repository.git 이라는 원격 리포지토리에 연결한다.

로컬에서 작업을 먼저 한 후에 나중에 원격 저장소를 연결할 때 사용된다.


GitHub에 푸시하기

git push origin main

로컬의 변경사항을 GitHub에 푸시하여 반영. main 대신 masterbranch 이름을 사용할 수도 있다.

변경사항 가져오기

git pull origin main

GitHub 리포지토리에서 최신 변경사항을 가져온다.

GitHub에 Personal Access Token 사용하기

2021년 8월 이후, GitHub는 보안 강화를 위해 비밀번호 대신 Personal Access Token (PAT)을 사용하도록 했다. 이를 위해서 git pushgit pull을 할 때 GitHub 비밀번호 대신 토큰 을 사용해야 한다.


브랜치

현재 브랜치 확인

git branch

이 명령어를 실행하면 현재 로컬 리포지토리에서 사용 가능한 모든 브랜치 목록이 나옵니다. 현재 작업 중인 브랜치는 *로 표시되며, 보통 main 또는 master가 기본 브랜치다.

* main
  feature-branch

main 브랜치에서 작업 중이라는 의미.


새 브랜치 생성

git branch new-branch

new-branch라는 이름의 새로운 브랜치를 생성하지만, 생성 후 자동으로 그 브랜치로 전환되지는 않는다.


새 브랜치로 전환

git checkout new-branch

new-branch라는 브랜치로 전환하여 그 브랜치에서 작업을 시작, 또는 아래 명령어로 브랜치를 생성하면서 동시에 그 브랜치로 전환할 수 있다.

 git checkout -b new-branch

브랜치 삭제

git branch -d branch-name

사용하지 않는 브랜치를 삭제할 때 사용. 만약 강제로 삭제하려면 -D 옵션을 사용할 수 있다.


원격 브랜치 확인

git branch -r

원격(예: GitHub)에서 존재하는 브랜치 목록을 확인.


브랜치 병합

git merge branch-name

현재 브랜치에 branch-name 을 병합 함. 병합 충돌이 없으면 자동으로 변경 사항이 반영된다.


원격 브랜치 푸시

git push origin branch-name

로컬에서 만든 브랜치를 원격(GitHub) 리포지토리에 푸시. 원격 저장소에 새로운 브랜치가 생성된다.


브랜치 이름 변경

git branch -m old-branch-name new-branch-name

old-branch-namenew-branch-name 으로 변경한다.


특정 브랜치 가져오기

git pull origin branch-name

원격에서 특정 브랜치의 변경 사항을 가져온다.


git switch와 git checkout 중에 뭘?

Git에서는 예전부터 브랜치 전환에 git checkout 명령어를 사용했지만, 최근에 더 직관적이고 브랜치 관련 작업을 구분하기 쉽게 하기 위해 git switch 명령어가 도입되었다.

git switch 는 브랜치를 전환하는데 특화된 명령어.

브랜치 전환을 할 때 꼭 git checkout 을 사용하지 않아도 되고, 대신 git switch 명령어를 사용할 수 있다.


git switch로 브랜치 전환

git switch branch-name

branch-name으로 브랜치를 전환. checkout 명령어와 동일한 역할을 한다.


새 브랜치 생성과 전환

git switch -c new-branch

새로운 브랜치를 생성하고 그 브랜치로 바로 전환. 기존의 it checkout -b new-branch 동일한 동작을 한다.


git checkout과의 차이점

  • git checkout : 브랜치 전환뿐만 아니라, 파일을 체크아웃하거나 특정 커밋으로 이동하는 기능도 포함하고 있어서 다소 복잡한 동작을 수행한다.

  • git switch : 브랜치 전환에만 집중한 명령어로 브랜치 관련 작업에 더욱 명확하고 직관적이다.


음.....

오늘 강의도 듣고 팀원들과 함께 Git에 대해 공부하면서 여러 가지 개념을 새롭게 알게 됐다. 하지만...동시에 조금 힘들기도 했는데, 특히 원격 리포지토리와 로컬 리포지토리의 관계를 이해하는 부분이 헷갈렸고, git clonegit remote add origin 의 차이를 확실하게 구분하는 데 시간이 걸렸다.

그래도 열심히 쉽게 알려주시는 팀장님의 가르침을 받고 실습을 통해 커밋(commit)푸시(push) 를 직접 해보면서 개념이 조금씩 정리되는데, 처음에는 이상한 에러 메시지가 나와서 당황했지만 원격 리포지토리 설정을 제대로 하고 나니 푸시도 성공적으로 할 수 있었다.

특히 GitHub 에서 비밀번호 인증 대신 토큰 방식 을 사용해야 한다는 부분을 깨닫고 이걸 설정하는 과정에서 조금 많이....헤맸지만 결국 해결해냈다.!!!!!!!

힘든 부분도 있었지만, 직접 커밋하고 푸시까지 성공하면서 깃이 재밌어지고, Git으로 블로그까지 작성해보고 싶은 욕심이 생겼다. 오늘은 Git의 기본적인 개념을 제대로 익히는 데 정말 큰 도움이 된 날이었다.

(내가 제일 늦게 커밋하고 푸시까지 시간이 걸렸는데, 기다려준 팀원들에게 너무나도 고맙고 감사하다.)

다음에는 더 복잡한 Git 명령어와 협업 도구들을 활용하는 방법도 공부해보고 싶고 블로그도 꼭..!! 매니저님께 물어봐서 만들어볼 것이다.

profile
iOS 좋아. swift 좋아.

6개의 댓글

comment-user-thumbnail
2024년 10월 22일

엉엉....😭

1개의 답글
comment-user-thumbnail
2024년 10월 23일

오 벨로그 버리고 깃블로그로 가시나요~
얼른 오토레이아웃 정리해주세요

1개의 답글
comment-user-thumbnail
2024년 10월 24일

git checkout만 사용하는 사람으로서 git switch에 존재를 처음 알았네요 git stash, git stash apply라는 명령어도 유용하고 현업에서도 사용할 일이 많으니 한번 알아보시면 많은 도움이 될 것 같습니다 ^_^

(아, cherry-pick도 알고 계시면 쓸 일이 생길 겁니다 반드시)

1개의 답글