Git(1)
Git은 툴이고, Github는 웹서비스이다!!!
Git Objects
-
Blob : git add를 입력할 때 생성되며, 파일 하나의 내용에 대한 정보이다.
-
Tree : git commit를 입력할 때 생성되며, Blob이나 subtree의 메타데이터이다.(디렉터리 위치, 속성, 이름 등)
-
Commit : git commit를 입력할 때 생성되며, 커밋 순간의 스냅샷이다.(Blob, Tree가 들어있다.)
Git Process Flow
Blob : git add를 입력할 때 생성되며, 파일 하나의 내용에 대한 정보이다.
Tree : git commit를 입력할 때 생성되며, Blob이나 subtree의 메타데이터이다.(디렉터리 위치, 속성, 이름 등)
Commit : git commit를 입력할 때 생성되며, 커밋 순간의 스냅샷이다.(Blob, Tree가 들어있다.)
- Staging Area : workspace에서 변경된 내용을 임시로 저장하는 공간이다.
- 이 공간이 왜 필요할까? : Staging Area 공간이 없으면 저장소에 올리고 싶지 않은 변경 사항들도 다 올려져서 공개가 된다. 하지만 이 공간이 있음으로써 변경 사항들 중에 골라서 저장소에 올릴 수 있다.
-
Local Repository : 내 PC에 파일이 저장되는 개인 전용 저장소이다.
-
Remote Repository : 파일이 원격 저장소 전용 서버(Github)에서 관리되며 여러 사람이 함께 공유하기 위한 저장소이다.
Git Commands
-
git status : git 프로젝트의 상태를 확인할 수 있다. (shell command의 ls 만큼 자주 사용한다.)
-
git add (파일명) : (파일명)의 변경된 내용을 Stage Area에 임시로 저장한다.
-
git commit : Stage Area에 저장된 것을 로컬 저장소에 올린다.
-
git push origin main : origin에 저장되어있는 원격 저장소의 URL에 로컬 저장소의 main이라는 branch에 있는 스냅샷을 원격 저장소로 보낸다.
- git push -u origin develop : -u 옵션을 사용하여 develop 브랜치와 원격 저장소 URL(origin)를 연결하는 작업이다. 처음 push 하는 브랜치에 사용한다.
-
git pull (원격저장소 URL) (branch name) : 원격 저장소에 저장된 것들을 로컬 저장소로 가져온다.
-
git remote : 원격 저장소의 URL을 관리하는 명령어이다. 등록된 원격 저장소의 별칭만 보여준다.
- git remote add (별칭) (원격 저장소의 URL) : 이름이 (별칭)인 원격 저장소의 URL을 등록한다.
- git remote -v : 등록된 원격 저장소의 별칭과 URL을 출력한다.
- git remote remove (별칭) : 등록된 원격 저장소를 지운다.
-
git branch -M (이름) : branch의 이름을 바꾼다.
-
git fetch (remote name) (branch name) : fetch를 실행하면 임시 브랜치가 생성된다.(FETCH_HEAD)
- fetch를 사용하는 이유는 pull을 실행하면, 원격 저장소의 내용을 가져와 자동으로 병합 작업을 실행하게 된다. 그러나 단순히 원격 저장소의 내용을 확인만 하고 로컬 데이터와 병합은 하고 싶지 않은 경우에는 fetch 명령어를 통해 확인할 수 있다.
- 확인 후 로컬 저장소의 'main'에 병합하고 싶은 경우, 'FETCH_HEAD' 브랜치를 merge 하거나 다시 pull 하면 된다.
- pull = fetch + merge라고 생각하면 된다.
Git Repository 만들기
- git clone을 사용하여 Repository 만들기
- Github에서 새로운 repository를 만든다.
- git clone (원격 저장소 URL)을 입력하여 github에서 만든 repository를 내 PC에 복제한다.
- git init를 사용하여 만들기
- Repository로 사용할 디렉터리로 이동한다.
- git init 명령어를 통해 새로운 repository를 만든다.
- github에서 디렉터리랑 이름이 같은 repository를 만들어준다.
- 터미널 창에서 git remote add (별칭) (원격 저장소의 URL)을 입력하여 원격 저장소를 등록한다.
- git add와 git commit은 기존과 동일하게 해 준다.
- github의 저장소와 디렉터리의 저장소의 branch가 일치하지 않기 때문에 git push -u (별칭) main을 입력하여 branch를 일치시켜 준다.
(git clone은 복제해 온 것이기 때문에 일치가 되어있지만, git init는 일치가 안되어있다.)
***Commit Convention
- 커밋 제목은 50자 이내로 요약하여 작성한다.
- 제목과 내용 사이에는 한 줄을 비운다.(제목 작성 후 엔터 두 번!)
- 되도록이면 영어로 작성하고, 단어의 앞글자는 대문자로 사용한다.
- 커밋은 동작 가능한 최소 단위로 자주 해야 한다.
- prefix를 사용하여 커밋의 용도를 알기 쉽게 한다.
- feat: Features (기능 개발 관련)
- docs: Documentations (문서화 작업)
- conf: Configuration (환경설정 관련)
- test: Test (테스트 관련)
- fix: Bug-fix (오류 개선 혹은 버그 패치)
- refactor: Refactoring (코드 리팩토리, 기능을 향상했을 때)
- ci: Continuous Integration (Continuous Integration 관련)
- build: (빌드 관련)
- perf: Performance (퍼포먼스 관련)
- 예시) README.md 파일을 작성했을 때
docs: Create README.md
Add content about the project.
Author And Source
이 문제에 관하여(Git(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@zz1996zz/Git1
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
git status : git 프로젝트의 상태를 확인할 수 있다. (shell command의 ls 만큼 자주 사용한다.)
git add (파일명) : (파일명)의 변경된 내용을 Stage Area에 임시로 저장한다.
git commit : Stage Area에 저장된 것을 로컬 저장소에 올린다.
git push origin main : origin에 저장되어있는 원격 저장소의 URL에 로컬 저장소의 main이라는 branch에 있는 스냅샷을 원격 저장소로 보낸다.
- git push -u origin develop : -u 옵션을 사용하여 develop 브랜치와 원격 저장소 URL(origin)를 연결하는 작업이다. 처음 push 하는 브랜치에 사용한다.
git pull (원격저장소 URL) (branch name) : 원격 저장소에 저장된 것들을 로컬 저장소로 가져온다.
git remote : 원격 저장소의 URL을 관리하는 명령어이다. 등록된 원격 저장소의 별칭만 보여준다.
- git remote add (별칭) (원격 저장소의 URL) : 이름이 (별칭)인 원격 저장소의 URL을 등록한다.
- git remote -v : 등록된 원격 저장소의 별칭과 URL을 출력한다.
- git remote remove (별칭) : 등록된 원격 저장소를 지운다.
git branch -M (이름) : branch의 이름을 바꾼다.
git fetch (remote name) (branch name) : fetch를 실행하면 임시 브랜치가 생성된다.(FETCH_HEAD)
- fetch를 사용하는 이유는 pull을 실행하면, 원격 저장소의 내용을 가져와 자동으로 병합 작업을 실행하게 된다. 그러나 단순히 원격 저장소의 내용을 확인만 하고 로컬 데이터와 병합은 하고 싶지 않은 경우에는 fetch 명령어를 통해 확인할 수 있다.
- 확인 후 로컬 저장소의 'main'에 병합하고 싶은 경우, 'FETCH_HEAD' 브랜치를 merge 하거나 다시 pull 하면 된다.
- pull = fetch + merge라고 생각하면 된다.
- git clone을 사용하여 Repository 만들기
- Github에서 새로운 repository를 만든다.
- git clone (원격 저장소 URL)을 입력하여 github에서 만든 repository를 내 PC에 복제한다.
- git init를 사용하여 만들기
- Repository로 사용할 디렉터리로 이동한다.
- git init 명령어를 통해 새로운 repository를 만든다.
- github에서 디렉터리랑 이름이 같은 repository를 만들어준다.
- 터미널 창에서 git remote add (별칭) (원격 저장소의 URL)을 입력하여 원격 저장소를 등록한다.
- git add와 git commit은 기존과 동일하게 해 준다.
- github의 저장소와 디렉터리의 저장소의 branch가 일치하지 않기 때문에 git push -u (별칭) main을 입력하여 branch를 일치시켜 준다.
(git clone은 복제해 온 것이기 때문에 일치가 되어있지만, git init는 일치가 안되어있다.)
***Commit Convention
- 커밋 제목은 50자 이내로 요약하여 작성한다.
- 제목과 내용 사이에는 한 줄을 비운다.(제목 작성 후 엔터 두 번!)
- 되도록이면 영어로 작성하고, 단어의 앞글자는 대문자로 사용한다.
- 커밋은 동작 가능한 최소 단위로 자주 해야 한다.
- prefix를 사용하여 커밋의 용도를 알기 쉽게 한다.
- feat: Features (기능 개발 관련)
- docs: Documentations (문서화 작업)
- conf: Configuration (환경설정 관련)
- test: Test (테스트 관련)
- fix: Bug-fix (오류 개선 혹은 버그 패치)
- refactor: Refactoring (코드 리팩토리, 기능을 향상했을 때)
- ci: Continuous Integration (Continuous Integration 관련)
- build: (빌드 관련)
- perf: Performance (퍼포먼스 관련)
- 예시) README.md 파일을 작성했을 때
docs: Create README.md
Add content about the project.
Author And Source
이 문제에 관하여(Git(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@zz1996zz/Git1
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
- feat: Features (기능 개발 관련)
- docs: Documentations (문서화 작업)
- conf: Configuration (환경설정 관련)
- test: Test (테스트 관련)
- fix: Bug-fix (오류 개선 혹은 버그 패치)
- refactor: Refactoring (코드 리팩토리, 기능을 향상했을 때)
- ci: Continuous Integration (Continuous Integration 관련)
- build: (빌드 관련)
- perf: Performance (퍼포먼스 관련)
docs: Create README.md
Add content about the project.
Author And Source
이 문제에 관하여(Git(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@zz1996zz/Git1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)