: 개발자의 코드를 효율적으로 관리하기 위해서 개발된 '분산형 버전 관리 시스템'
- 파일의 변경 사항 추적, 사용자가 각 파일의 버전을 관리할 수 있게 도움
- 파일 백업
- 파일 공유 및 취합 가능 => 협업 가능
: Git Repository를 관리할 수 있는 클라우드 기반 서비스
- Online:
Remote Repository
(원격 저장소)- Local
-Work space
(작업 공간)
Staging area
(스테이징 영역): Local에 저장할 파일 임시 대기 영역Local repository
(지역 저장소)
: 파일이나 폴더를 저장해두는 저장소
: 원격 온라인 서버 상의 저장소
: 내 컴퓨터의 저장소
Git으로 버전을 관리하는 폴더에 대해 Github을 통해 여러 사람들이 공유하고 접근 가능
- Git: 로컬에서 버전 관리해주는 프로그램
- Github: Git을 클라우드 방식으로 구현한 서비스
: 소스 코드가 공개된 소프트웨어
출처: designless.net
init
: Git 초기화add
, commit
, push
: 온라인 원격 저장소에 업로드fork
, clone
: 협업자의 작업물을 나의 로컬에 다운로드 받는 과정pull request
: 상대 협업자에게 나의 작업 완성물을 취합해달라고 요청하는 과정merge
: 상대방의 작업물과 나의 작업물을 취합하는 과정 : 보안이 강화된 shell 접속
$ ssh-keygen //ssh key 생성
$ cat ~/ .ssh/id_rsa.pub //공개키를 텅헤 CLI 사용자 인증 가능
$ git config --global user.name "나의 사용자 이름"
$ git config --global user.email "내 이메일 주소"
$ git config --global core.editor nano
$ git init
$ git config --global init.defaultBranch 변경할_브랜치_이름
- git config --global init.defaultBranch main
$ git branch -m 변경할_브랜치_이름
- git branch -m main
$ git add .
$ git status
$ git commit -m "Commit message"
$ git restore .
$ git push origin main
$ git log
$ git remote --v
$ git remote add origin 복사한_원격_저장소_URL
$ git clone 복사한_URL
On branch main
: 현재 브랜치는 main 브랜치 입니다.
No commit yet
: 아직 커밋을 하지 않았습니다.
Untracked files
: Git의 관리 하에 있는 파일이 가질 수 있는 상태 중 하나
(use “git add <file>…” to include in what will be committed)
: git add file_name
을 입력하면 commit될 것들에 해당 파일을 포함시킬 수 있다.
nothing added to commit but untracked files present (use "git add" to track)
: 아직 add된 파일이 없으며, Untracked 상태의 파일이 존재하니, git add 명령을 사용하세요.
Unmodified
: 파일의 수정이 Git에 의해 감지되지 않은 상태
Modified
: 파일의 수정이 Git에 의해 감지된 상태
Staged
: 파일이 Staging area에 존재하는 상태