형상 관리 도구 중 하나이다.
형상관리 도구는 소프트웨어를 개발하는 과정에서 발생하는 변경사항을 체계적으로 관리하기 위한 도구라고 한다.
그리고 깃허브는 깃 저장소를 온라인에서 관리할 수 있게 해주는 웹 기반 플랫폼인데, 깃을 사용하면 원격 저장소에 깃으로 관리하는 프로젝트를 업로드 하고 다른 협업자들과 쉽게 협업도 가능하다.
GitHub 사용 시 자주 쓰는 Git 명령어를 정리해봤다. 나중에 내가 보려고...
git init
로컬 폴더에서 새로운 Git 리포지토리를 생성해준다.
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
이라는 원격 리포지토리에 연결한다.
로컬에서 작업을 먼저 한 후에 나중에 원격 저장소를 연결할 때 사용된다.
git push origin main
로컬의 변경사항을 GitHub에 푸시하여 반영. main
대신 master
나 branch
이름을 사용할 수도 있다.
git pull origin main
GitHub 리포지토리에서 최신 변경사항을 가져온다.
2021년 8월 이후, GitHub는 보안 강화를 위해 비밀번호 대신 Personal Access Token (PAT)을 사용하도록 했다. 이를 위해서 git push
나 git 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-name
을 new-branch-name
으로 변경한다.
git pull origin branch-name
원격에서 특정 브랜치의 변경 사항을 가져온다.
Git
에서는 예전부터 브랜치 전환에 git checkout
명령어를 사용했지만, 최근에 더 직관적이고 브랜치 관련 작업을 구분하기 쉽게 하기 위해 git switch
명령어가 도입되었다.
git switch
는 브랜치를 전환하는데 특화된 명령어.
브랜치 전환을 할 때 꼭 git checkout
을 사용하지 않아도 되고, 대신 git switch
명령어를 사용할 수 있다.
git switch branch-name
branch-name
으로 브랜치를 전환. checkout
명령어와 동일한 역할을 한다.
git switch -c new-branch
새로운 브랜치를 생성하고 그 브랜치로 바로 전환. 기존의 it checkout -b new-branch
동일한 동작을 한다.
git checkout
: 브랜치 전환뿐만 아니라, 파일을 체크아웃하거나 특정 커밋으로 이동하는 기능도 포함하고 있어서 다소 복잡한 동작을 수행한다.
git switch
: 브랜치 전환에만 집중한 명령어로 브랜치 관련 작업에 더욱 명확하고 직관적이다.
오늘 강의도 듣고 팀원들과 함께 Git에 대해 공부하면서 여러 가지 개념을 새롭게 알게 됐다. 하지만...동시에 조금 힘들기도 했는데, 특히 원격 리포지토리와 로컬 리포지토리의 관계를 이해하는 부분이 헷갈렸고, git clone
과 git remote add origin
의 차이를 확실하게 구분하는 데 시간이 걸렸다.
그래도 열심히 쉽게 알려주시는 팀장님의 가르침을 받고 실습을 통해 커밋(commit)
과 푸시(push)
를 직접 해보면서 개념이 조금씩 정리되는데, 처음에는 이상한 에러 메시지가 나와서 당황했지만 원격 리포지토리 설정을 제대로 하고 나니 푸시도 성공적으로 할 수 있었다.
특히 GitHub
에서 비밀번호 인증 대신 토큰 방식 을 사용해야 한다는 부분을 깨닫고 이걸 설정하는 과정에서 조금 많이....헤맸지만 결국 해결해냈다.!!!!!!!
힘든 부분도 있었지만, 직접 커밋하고 푸시까지 성공하면서 깃이 재밌어지고, Git으로 블로그까지 작성해보고 싶은 욕심이 생겼다. 오늘은 Git의 기본적인 개념을 제대로 익히는 데 정말 큰 도움이 된 날이었다.
(내가 제일 늦게 커밋하고 푸시까지 시간이 걸렸는데, 기다려준 팀원들에게 너무나도 고맙고 감사하다.)
다음에는 더 복잡한 Git 명령어와 협업 도구들을 활용하는 방법도 공부해보고 싶고 블로그도 꼭..!! 매니저님께 물어봐서 만들어볼 것이다.
엉엉....😭