github는 프로젝트 팀이 모여 코드를 관리하는 협업 툴이라고 생각 할수 있어요. 멀리 떨어져서 git이라는 공간안에서 작업내역 들을 관리 할수 있다고 생각 할수 있어요.
(쉽게 말해 한국에 있는 철수와 미국에 잇는 톰이 같이 개발 작업을 할수 있다.!)
그리고 개발자 와 git은
땔수 없는 관계니까 개발자라면 기본적인 개념이 필요하다고 생각 해요.
(배우고 배워도 어렵지만 천천히 이해 하고 있어요)
그래서 깃을 활용하면 코드 버전 관리(CI), 코드 배포관리(CD)등을 할수 있어요.
CI&CD라는 부분도 설명이 필요한데 이 부분은 나중에 다시 공부하고 이야기 하고 싶어요.
일단 깃을 활용 하고 싶으면인 git이라는 홈페이지에 가입을 하고 Repository(이하 Repo를 만들어야 되요.)
요기에서 Repo는 내가 코드를 저장하고 공유 할수 있는 장소가 되요.
그리고 git을 활용 할때에는 Main과 Master라는 것이 있어요.
초기에 Repo를 만들면은 예전에는 Master였는데 2020년 10월부터는 Main이라고 변경 된다고 해요. 이유는 인종차별? 그런 이유라는 썰도 있던데 Master<->Slave?
언어하나로도 무서운 세상이니.
아무튼 Main or Master는 기본 branch를 지정하는 것이라고 생각해요.
그럼 branch는 뭐냐. 하나의 Repo에서 API에 대한 기능 개발을 하는데 철수는 어떤 기능을 만들고 철수는 어떤 기술을 만드는지 알아야 되는 작업 진행을 나누기 위한 개념으로 생각하면 될 것 같아요.
기본적인 개념을 이렇게 이해 하면 좋을 것 같아요.
그리고 밑에는 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프로젝트의 현 상태를 다운로드 |
git만 잘해도 회사에서 욕 안 먹는다고 하니까.
개발자 여러분들 모두 힘냅시다.