Git != GitHub
Git
- 분산 버전 관리 프로그램
- 코드 버전 관리 소프트웨어
- 어느 컴퓨터에서나(로컬에서) 가능 (인터넷 연결이나 계정등록 필요없음)
GitHub
- git을 바탕으로 하는 코드 호스팅 플랫폼
- 원격 저장소를 대신 제공해주는 서비스(웹서비스)
- 클라우드에 저장해서 다른 사람과 쉽게 공동으로 작업
local과 github dusruf
1. repository 생성부터 시작할 때
- Github 페이지 > New repository (상단바) > repository name 작성 > create repository
- 나의 로컬 repository를 Github repository와 연결 (remote 추가)
git remote add origin https://github.com/<your-username>/<your-repo-name>.git
2. 이미 생성된 public repository를 clone 받을 때
git clone url입력
3. 프로젝트를 시작하고 중간에 git으로 관리할 때
: 폴더 내 숨겨진 .git 디렉토리 생성 (git이 현재 저장소대한 모든 변경사항 추적/관리)
git init
github에 repository 생성하고 remote 명령어로 로컬과 연결
git remote add origin https://github.com/<your-username>/<your-repo-name>.git
git remote add origin 원경저장소주소
> 기본 브랜치 명을 main으로
git branch -M main
> commit하고 push로 파일 업로드
local 저장소의 commit 내역들을 원격으로 업로드 - push
-u은 현재 브랜치와 원격 브랜치를 기본 연결 (--set -upstream)
git push -u origin main
현재 프로젝트와 연결된 원격저장소 확인
git remote
🌟 main은 local이고, origin/main은 원격저장소를 나타낸다.
Branch
브랜치는 깃의 가장 특징적인 기능이며, 프로젝트에서 일종의 타임라인 같은 것이라고 생각할 수 있다.
- 브랜치란 독립적으로 어떤 작업을 진행하기 위한 것
- 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시 진행 가능
- 각자 작업을 진행한 후, 작업이 끝난 사람은 메인 브랜치에 자신의 브랜치의 변경 사항을 적용
// 브랜치 생성
git branch branchName
// 브랜치 전환
git switch branchName
git checkout branchName
// 브랜치 생성-전환 동시에
git switch -c branchName
git cehckout -b branchName
// 모든 브랜치 확인
git branch
git branch -al
// 브랜치 삭제
git branch -d branchName
// 로컬 브랜치 삭제한 것을 원격에 반영
git push -d origin branchName
기존에는 브랜치 이동 시 'git checkout'을 사용했는데, checkout은 브랜치 이동 이외에 더 많은 기능을 제공해서
현재에는 'git switch'가 생성되었다. 둘 다 여전히 작동한다.
Head
: 저장소에서 현재의 위치(보거나 확인하고 있는)를 가리키는 포인터 (branch pointer, 일종의 git의 북마크)
각 각의 브랜치마다 HEAD가 따로 존재
현재 이동해 있는 브랜치를 HEAD가 가리킴 (=특정 브랜치를 참조)
Head가 참조하고 있는 곳 확인
cat .git/HEAD
add > commit > push
add
: commit할 파일을 미리 지정 (staging area에 파일 추가)
//모든파일 추가
git add .
//git add 파일명
git add file.js
//여러 파일 추가
git add file.js file2.js
git에 추가하고 싶지않은 파일
: .gitignore 파일생성 - 파일안에 파일명과 폴더명 나열
//ex
.DS_*
*.log
logs
**/*.backup.*
**/*.back.*
node_modules
bower_components
commit
: 프로젝트 디렉토리의 특정 모습을 하나의 버전으로 남기는 행위, 결과물
git commit -m "커밋에관한정보/메세지"
log
: commit 된 내역
git log
push
: commit된 내역을 push로 파일 업로드
local 저장소의 commit 내역들을 원격으로 업로드 - push
(branch name 따로 지정하지 않고 'git push'만 하면 해당작업 브랜치의 원격으로 자동업로드)
git push origin branchName
git push
pull
status
: 상태확인 (현재 git의 상태 확인 : 추가, 변경사항 전부 보여줌)
git status
PR : Pull Request
: 함께 작업중인 다른 사람들에게 내가 작업한 브랜치의 작업내용을 main 브랜치에 반영하기 전 코드를 확인해달라는 요청
main branch와 conflict가 발생하지 않는다면, 해당 PR은 main branch로 merge 될 준비가 완료
Pull
: 여러 사람이 작업중 다른 사람이 main에 작업사항은 반영했다면, local repository는 원격저장소의 main과 서로 다른 내용을 가짐
> git pull 명령으로 remote의 최신화된 코드를 내 local repository에 반영
git pull origin branchName
//ex
git pull origin main
git pull origin develop
'Archive' 카테고리의 다른 글
[Regex] 정규 표현식(1) - Quantifier 수량자 (0) | 2022.11.12 |
---|---|
[Git] Merge - fast Forward merge, commit merge (merge 방식) (0) | 2022.10.26 |
[React] TDD in reactjs with RTL and Jest - (2)기초 예제 (0) | 2022.10.25 |
[React] Recoil 상태관리 라이브러리 기초 (0) | 2022.09.11 |
[RN] react-native-video (evaluating 'RCTVideolastance.Constants' error) (0) | 2022.08.27 |