git & github

재웅·2023년 5월 17일
0

오늘의 정리

목록 보기
38/52
post-thumbnail

지금까지 git 과 github를 제대로 다뤄본적도 없을뿐더러 사용하기에 겁이나 내가 해본것이라곤 그저 강의를 들으며 git 을 설치하고 터미널창에 코드를 따라칠뿐이었다. 그 와중에도 git 과 github 를 왜 쓰는건지 이해를 할 수 없었지만 지금은 여러 파일들을 github에서 끌어와 수정 후 다시 저장하기도 하고 여러 과정을 통해 git 과 github에 대한 이해도가 조금이나마 올라갔다.

지금 이 시점에서 git과 github에 대해 정확하게 알고 넘어가야 추후에 더 편할 것 같아 내용을 정리해본다.


git을 쓰는 이유

개발을 하는 과정에서 코드에 대한 수정이 매우 많이 이루어질텐데 수정된 파일들을 복사본으로 계속 만들며 관리하고 보관하기는 힘들것이다. 이 문제점을 해결하기 위해 나온것이 git이고 git은 프로젝트 파일의 변경 사항을 추적하는 시스템으로서 이를 통해 프로젝트의 변경 사항을 기록하고, 특정 시점의 버전으로 언제든 돌아갈 수 있다.

Introduction to Git

  • Repositories(저장소)

    Git repository는 Git으로 관리하는 프로젝트 저장소다. Git repository에는 크게 두 가지 종류가 있는데
    -- Local repository : 본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소.
    -- Remote repository : 로컬과는 반대로 내 컴퓨터가 아닌 외부버전의 프로젝트 저장소로 팀에서 작업 할 때 특히 유용하다. 프로젝트 코드를 공유할 수 있고 다른 사람의 코드도 확인할 수 있다.

git 명령어

<새로운 저장소 생성>	
$ git init	
.git 하위 디렉토리 생성
(폴더를 만든 후, 그 안에서 명령 실행 => 새로운 git저장소 생성)
<저장소 복제 / 다운로드(clone)>	
$ git clone <https:.. URL>	기존 소스 코드 다운로드/복제
$ git clone /로컬/저장소/경로	로컬 저장소 복제
$ git clone 사용자명@호스트:/원격/저장소/경로	원격 서버 저장소 복제
<추가  확정(commit)>	
$ git add <파일명>
$ git add *	커밋에 단일 파일의 변경 사항을 포함 (인덱스에 추가된 상태)
$ git add -A	커밋에 파일의 변경 사항을 한번에 모두 포함
$ git commit -m "커밋 메시지"	커밋 생성 (실제 변경사항 확정)
$ git status	파일 상태 확인
<가지(branch)치기 작업>	
$ git branch	브랜치 목록
$ git branch <브랜치이름>	새 브랜치 생성 (local로 만듦)
$ git checkout -b <브랜치이름>	브랜치 생성 & 이동
$ git checkout master	master branch로 되돌아 옴
$ git branch -d <브랜치이름>	브랜치 삭제
$ git push origin <브랜치이름>	만든 브랜치를 원격 서버에 전송
$ git push -u < remote > <브랜치이름>	새 브랜치를 원격 저장소로 push
$ git pull < remote > <브랜치이름>	원격에 저장된 git 프로젝트의 현재 상태를 다운받고 + 현재 위치한 브랜치로 병합
<변경 사항 발행(push)>	
$ git push origin master	변경사항 원격 서버에 업로드
$ git push < remote > <브랜치이름>	커밋을 원격 서버에 업로드
$ git push -u < remote > <브랜치이름>	커밋을 원격 서버에 업로드
$ git remote add origin <등록된 원격 서버 주소>	클라우드 주소 등록 및 발행 (git에게 새로운 원격 서버 주소 알림)
$ git remote remove <등록된 클라우드 주소>	클라우드 주소 삭제
<갱신  병합(merge)>	
$ git pull	원격 저장소의 변경 내용이 현재 디렉토리에 가져와지고(fetch) 병합(merge)됨
$ git merge <다른 브랜치이름>	현재 브랜치에 다른 브랜치의 수정사항 병합
$ git add <파일명>	각 파일을 병합할 수 있음
$ git diff <브랜치이름><다른 브랜치이름>	변경 내용 merge 전에 바뀐 내용을 비교할 수 있음
<태그tag 작업>	$ git log	현재 위치한 브랜치 커밋 내용 확인 및 식별자 부여됨
<로컬 변경사항 return 작업>	
$ git checkout -- <파일명>	로컬의 변경 사항을 변경 전으로 되돌림
$ git fetch origin	원격에 저장된 git프로젝트의 현 상태를 다운로드

문제 & 해결

Remote repository에서 git clone으로 로컬 저장소를 복제해온 후 branch 생성하지않고 main에서 작업을 했는데 나중에서야 개인 branch를 만들고 작업을 진행해야 된다는것을 알았다. 이 과정에서 팀으로 작업할 때는 clone으로 로컬 저장소를 복제해온 후 개인 branch를 생성하고 git checkout 으로 branch 이동 후 작업을 진행한뒤 git add commit push 를 해야된다는것을 깨달았다.

profile
오늘의 정리

0개의 댓글