Git ?
- Git을 이용하면 하나의 프로젝트를 여러 사람들과 효과적으로 관리 및 협업 가능.
- 동시에 개발할 수 있으므로 개발 속도가 빨라짐.
- 오픈소스 프로젝트 활용가능.
- 포트폴리오 관리에도 용이.
깃 설치방법 : git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98
Git 영역
Working Directory (Local)
- 작업할 파일이 있는 디렉토리
- 개인 코드 작성
Staging Area
- git add를 통해 수정된 코드를 올리는 영역
- 커밋(Commit)을 수행할 파일들이 올라가는 영역
Git Directory
Git 프로젝트의 메타 데이터와 데이터 정보가 저장되는 디렉토리
Git 을 사용하는 이유?
- Git은 중앙 서버의 개념없이 서버가 망가 졌을 때 다른 컴퓨터로부터 소스코드를 복구할 수 있다는 특징.
Git의 장점
- 분산적인 개발 : 깃을 사용하는 전체 개발 내역을 각 개발자의 로컬 컴퓨터로 복사할 수 있습니다. 나중에 서로 수정된 내역을 합치기(Merge)할 수도 있으며, 이 때 Git의 고유한 프로토콜을 이용하게 됩니다.
- 효율적인 개발 : 일반적인 다른 버전 관리 시스템보다 성능이 뛰어나다. 변경 이력이 많아도 변경된 내용만 처리해 메모리적 효율성도 뛰어남.
- 비선형적인 개발 : 깃(Git)은 브랜치(Branch)라는 개념이 사용, 가지치기가 가능하다. 트리구조
- 변경 이력 보장 : 작업된 모든 내역(Commin 내역)들은 모두 별도의 영역에서 관리되 안전하게 프로젝트를 운영할 수 있습니다.
저장소(Repository) 생성
# 도움말 보기
$ git help
# 원하는 폴더에 들어간 후 해당 폴더를 git의 관리하에 둔다.
$ git init
# 입력 후 해당 폴더에서 숨긴 파일을 보면 .git파일이 생성된 것을 볼 수 있습니다.
# 기존 github에 있는 저장소를 로컬로 복제할 수 있습니다.
$ git clone (github 저장소 URL)
$ git clone https://github.com/libgit2/libgit2 mylibgit
# conda로 가상환경 구축후 해당 가상환경에서 git clone을 사용해 쓸 수 있다.
코드 생성
# README 파일을 만들어보자.
$ echo 'My Project' > README
$ git status # 파일의 상태를 확인하는 명령
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files: # README 파일이 아직 스냅샷(커밋)에 넣어지지 않은 파일.
(use "git add <file>..." to include in what will be committed)
README
nothing added to commit but untracked files present (use "git add" to track)
파일을 추가
# README 파일을 staging 영역에 추가
$ git add README
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed: # Staged 상태
(use "git reset HEAD <file>..." to unstage)
new file: README
# git add -A 를 사용하면 수정된 파일 전부를 추가.
변경사항 커밋
$ git commit
# -m은 message의 약자 ""안에 수정된 내용을 적는다.
$ git commit -m "2020-01-01 README.md update"
리모트 저장소에 Push
# github 연결 origin은 repository이름, 다른 이름 설정 가능.
$ git remote add origin (github URL)
# origin이라는 저장소의 master에 push
$ git push origin master
- git push <리모트 저장소 이름><브랜치 이름>
- 이 명령은 Clone한 리모트 저장소에 쓰기 권한이 있고, Clone 하고 난 이후 아무도 Upstream 저장소에 Push 하지 않았을 때만 사용 가능.
- Clone 한 사람이 여러 명 있을때, 다른 사람이 Push 한 후에 Push하려고 하면 Push할 수 없음.
- 다른 사람이 작업한 것을 가져와 Merge 한 후 Push 할 수 있다.
리모트 저장소를 Pull 하거나 Fetch 하기
# remote 저장소에서 데이터를 가져온다.
$ git fetch <remote>
# remote 저장소 브랜치에서 데이터를 가져오고 자동으로 로컬 브랜치와 Merge
$ git pull
- 저장소를 Clone 하면 자동으로 리모트 저장소를 "origin"이라는 이름으로 추가.
- git fetch orgin을 하면, Clone 한 이후 수정된 것을 모두 가져옴, 리모트 저장소의 데이터를 모두 로컬로 가져오지만, 자동으로 Merge 하지는 않는다.
- git pull 은 Clone 한 서버에서 데이터를 가져오고, 자동으로 현재 작업하는 코드와 Merge 시킨다.
출처
Git - Book
git-scm.com
Git 사용 방법 정리(commit, push, pull request, merge 등)
Git git 개념 및 명령어 정리 개인 개발을 넘어, 공동 개발에서 효율적인 코드 형상 관리를 하기 위함. Git 영역 (1) Working Directory (Local) 개인 코드 작성 (2) Staging 영역 git add 를 통해서 수정된..
wordbe.tistory.com
'Git ,Github' 카테고리의 다른 글
[얄팍한 코딩사전] 가장쉬운 git 강좌 (상)혼자작업편 (0) | 2021.03.11 |
---|---|
[얄팍한 코딩사전]가장 쉬운 git 강좌(하) (0) | 2021.03.11 |
git 기본적인 사용법 (0) | 2021.03.04 |
Github? (0) | 2021.01.03 |
Git (2) | 2020.12.29 |