매번 찾아보기 시간이 아까워서 내게 필요한 Git 키워드를 정리해보겠습니다.
가장 기초적인 키워드를 제가 사용한 순서대로 정리하겠습니다.
clone
프로젝트를 이어받거나, 유지보수, 테스트 하는 경우 clone 키워드를 가장 처음에 사용하였습니다.
깃허브에 있는 코드 url 을 복사해 다음과 같은 명령어로 코드를 가져왔습니다.
$ git clone [url]
remote
코드를 가져온 후, 파일의 원격 저장소 주소를 확인할 필요가 있습니다.
다음과 같은 명령어로 깃 원격 저장소 주소를 확인하면 됩니다.
$ git remote -v
remote 명령어는 클론 받은 코드가 아닌 새롭게 생성한 프로젝트를 원격 저장소에 추가할 때에도 사용됩니다.
다음과 같은 명령어로 새로운 url의 origin 이름을 가진 원격 저장소에 코드를 올리고 관리할 수 있게 됩니다.
$ git remote add origin [url]
branch
깃에서 프로그램의 버전을 관리할 때 혹은 기존의 코드는 건드리지 않고, 새로운 기능을 개발할 때 사용됩니다.
브랜치를 생성해, 개별적인 환경에서 코드를 개발, 테스트 한 후 문제가 없다면 기존 브랜치에 병합하는 방식으로 사용됩니다.
현재 프로그램 로컬 환경의 브랜치의 종류를 확인하는 방법입니다. 초기에는 master 브랜치만 보입니다.
$ git branch
다음은 원격 저장소의 브랜치까지 확인하는 키워드입니다.
$ git branch -r
브랜치를 확인했다면, 새로운 브랜치를 생성하는 키워드입니다. test 란 이름을 가진 브랜치가 새롭게 생성됩니다.
$ git branch test
현재 test 란 브랜치가 새롭게 생성되었지만, 아직 master 브랜치에 머물러있습니다.
checkout 은 특정 브랜치로 이동하는 키워드입니다. 생성한 test 브랜치로 이동하게 됩니다.
$ git checkout test
로컬에서 생성된 브랜치는 원격 저장소 브랜치와 동일하지 않습니다.
원격 저장소로 코드를 집어넣는 push 키워드와 upstream 옵션을 함께 주면 원격 저장소에 브랜치를 생성하는 동시에 코드 변경사항을 함께 반영할 수 있습니다. origin 원격 저장소에 test 란 브랜치를 생성함과 동시에 수정사항을 반영하였습니다.
$ git push -u origin test
브랜치를 제거하는 키워드입니다. test 브랜치를 삭제합니다.
$ git branch -d test
add, commit
브랜치에서 코드를 작성한 후, 변경사항을 스테이징 영역으로 넣는 키워드 입니다. add . 를 사용하면 모든 변경사항을 넣습니다.
$ git add .
commit 명령어를 통해 변경사항을 명시적으로 기록할 수 있습니다. 명시적으로 기록하지 않는다면 add 명령어로 넣은 변경사항은 git 저장소 기록에는 반영되지 않습니다. 어떠한 변경사항인지 알기 쉽게 기록하는 것이 중요합니다. first commit 이라는 이름의 기록이 저장됩니다.
$ git commit -m "first commit"
merge
test 브랜치에서 작성한 코드가 문제가 없다면, 다시 master 브랜치로 넘어와 test 브랜치 변경사항과 병합시켜줘야 한다.
이 때 사용하는 키워드가 merge 이다.
우선 checkout 키워드를 통해 master 브랜치로 다시 넘어온 후, 진행해야 한다.
$ git merge test
가끔 두 브랜치 모두 변경이 되었을 경우에 충돌이 발생할 수 있다. 이 때 이전 merge 로 되돌린 후 충돌 사항을 수정해야 한다.
다음 명령어를 사용하면 이전 상태로 돌릴 수 있다.
$ git merge --abort
branch 꼬였을 때
협업하여 프로젝트를 진행하다보면, branch 를 각각 만들어 테스트 코드를 작성하게 되고, 이 때 브랜치가 꼬이는 경우가 많다.
매우 번거롭고, 다시 구글링 하기도 번거롭기 때문에 블로그에 기록해보려 한다.
$ git fetch --all
$ git reset --hard origin/master
$ git pull origin master
두 브랜치 간 파일들이 충돌하게 된다면, 이전 fetch 들은 가져온 다음 로컬에서 강제로 충돌나기 전 이전 상태로 되돌립니다.
그 후 pull 키워드를 통해 코드들을 가져오면 된다.
'개인 공부 > 전공 지식 정리' 카테고리의 다른 글
[Datebase] index 원리 (B+ Tree) (2) | 2022.11.08 |
---|---|
[Network] WEB vs WAS (0) | 2022.07.06 |
[Socket] WebSocket 이란 ? (0) | 2022.07.05 |
[Socket] Http 통신과 Socket 통신의 차이점 (0) | 2022.07.04 |