Git이란?
버전관리 시스템의 종류를 뜻합니다.
버전관리란?
여러 파일을 하나의 버전으로 묶어 관리하는 것을 뜻합니다.
버전관리 시스템의 종류
1. 클라이언트(Client) <-> 서버(Server)모델
- 하나의 중앙 서버로 여러 클라이언트들이 각자 필요한것만 가져와서 작업을 하고 다시 중앙 서버로 보내서 통합하는 방식입니다.
- SVN, CVS
2. 분산 모델
- 하나의 중앙 서버가 존재하지만, 여러 클라이언트들은 각자의 컴퓨터 저장소에 전체 사본을 가지고 작업하는 방식입니다.
- Git
Git의 장점
1. 동시에 작업하는 사람들과 소스코드를 주고받을 필요가 없음
2. 같은 파일을 여러명이 동시에 병렬 개발이 가능
3. 변동 과정을 체계적으로 관리할 수 있고, 언제든지 지난 시점의 버전으로 되돌릴 수 있음
4. 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있고, 중앙 서버의 데이터가 유실되어도 다시 복구할 수 있음
1. Git 사이트
다운로드 방법
1. 만약 그냥 Git 사이트에 접속을 하였다면 왼쪽에 있는 "Downloads"를 클릭합니다.
2. 오른쪽 모니터형식으로 되어있는 곳에 "다운로드"를 클릭합니다.
윈도우) 64-bit Git for Windows Setup 클릭
다운로드 및 설치를 진행합니다.
3. 버전확인
git --version
맥북 Git 업그레이드 및 설치방법
맥북은 자체에 Xcode를 초반에 설치를 진행하여 Git이 자동으로 설치가 되어있습니다.
하지만 버전이 틀려서 무조건 최근으로 업데이트를 하고 싶으시면
homebrew를 이용하여 다운로드 받으면 됩니다.
1. 터미널을 킨다.
2. Git의 버전을 확인한다
[git -v], 이때 최신버전인지 확인을 해주세요.
3. 설치방법
[brew install git]
위 방식으로 하면 설치가 완료됩니다.
Git 사용방법
1. 자신이 원하는 프로젝트 디렉토리(폴더)에 로컬 저장소를 생성
# 로컬 저장소란?
= 지금 자신이 사용하고 있는 내PC에 저장되는 저장소를 뜻합니다.
[git init]
ex) cd/myworkspace -> git init
2. git 버전 관리할 파일을 서택
[git add index.html]
(이러한 방식을 stage에 올린다고 합니다)
3. 하나의 버전으로 만들기
[git commit -m "index.html의 첫 커밋"]
*만약 에러가 발생하는 경우
[git config --global user.email "이메일주소"]
[git config --global user.name "이름"]
* config값 확인방법
[git config user.email]
[git config user.name]
* config 전역 설정값 삭제방법
[git config --global --unset user.email]
[git config --global --unset user.name]
* config 로컬저장소 설정값 삭제방법
[git config --unset user.email]
[git config --unset user.name]
4. 로그 확인
[git log]
5. 여러 파일을 한번에 선택하는 방법
[git add .]
# .은 모든 파일을 뜻합니다.
6. 선택된 여러 파일을 커밋(저장)하기
- 로컬 시스템에서 파일을 수정/생성/삭제 하고 원격 저장소에 반영할 파일들을 선별하는 것(버전 만드는 것)
- 파일이 변경될 때 변경 사항은 자동으로 저장되지 않음
- git에게 새 커밋을 생성하여 변경 사항을 저장하도록 지시
[git commit -m "설명글"]
GitHub
1. README.md 만드는방법
- 깃허브에 업로드시 저장소 메인 설명글로 사용
- 마크다운을 이용하여 작성
제목
# 제목 <h1></h1>
## 제목 <h2></h2>
~
###### 제목 <h6></h6>
강조
이탤릭체 : *이탤릭체* 또는 _이탤릭체_
볼드체 : **볼드체**
이탤릭체와 볼드체를 동시 : **_이탤릭체와 볼드체를 동시_**
취소선 : ~~취소선~~
<ul>밑줄</ul>
목록
순서가 필요할 때 : 1. 순서가 필요한 목록
순서가 필요하지 않을 때 : - 순서가 필요하지 않은 목록
링크
[클릭할 문자열](URL)
ex) [구글로 가기](https://google.com)
코드 작성
₩₩₩
프로그램 코드 작성
...
₩₩₩
2. 깃 허브(Git Hub)
- git으로 버전 관리한 코드를 업로드 할 수 있는 클라우드 서비스
- 단순히 저장만 하는 것이 아니라 다른 유저들과 함께 코드를 공유하고 온라인으로 하나의 프로젝트를 개발할 수 있게 해줌
- https://github.com
3. 로컬 저장소에 github 저장소 주소를 설정
[git remote add 사용자명 https://github.com/사용자주소]
4. 저장소 주소 삭제방법
[git remote remove 사용자명]
5. 확인방법
[git remote -v]
6. 생성한 커밋(버전)을 github로 전송(push)방법
- 원격 저장소에 업로드하여 다른 사용자와 커밋을 공유
[git push -u 사용자명 master]
# master는 사용자가 커밋을 할때 지정한 값을 말합니다.
옵션값 : -u
1. 원격저장소와 로컬 브랜치가 추척하는 브랜치를 의미합니다.
2. 기본적으로 origin.master 브랜치를 추척함.
7. Git Repository Clone
- Repository를 로컬 시스템에 복제하는 방법
- 지금까지 모든 Repository의 히스토리가 포함
[git clone git주소] (폴더를 생성)
ex) git clone https://github.com/사용자명
[git clone git주소 .] (폴더를 생성하지 않음)
ex) git clone https://github.com/사용자명 .
# 사용자명 뒤에 뛰어쓰기 . 을 붙히면 됩니다.
8. Git Repository Fork
- 하나의 Repository를 다른 게정(또는 네임스페이스)으로 복사
- Git 명령어가 아닌 github에서 제공
- 다른 사람의 github 계정 Repository에서 fork를 눌러 내 계정 Repository로 복사
9. 다른 사람과의 협업 방법
- 원하는 Repository에서 Settings ->
Collaborators -> 비밀번호 입력 후 Add people 클릭 ->
이름 또는 이메일 추가 -> 초대빋은 게정의 메일에서 수락
10. pull
원격저장소에서 fetch 명령어로 가져온 후 merge까지 한번에 실행하는 명령
[git pull origin]
# 변경사항 된 부분을 자동으로 덮어씌어진다.
# 그러면서 로컬에 반영을 한 후 다시 올리면 된다
11. fetch
- 원격저장소에서 소스를 가져오기
- merge를 사용하지 않음
[git fetch origin]
12. branch
- 작업에 대한 가지
- 큰 줄기(master)에 영향을 주지 않고 가지에서만 작업을 별도로 할 수 있음
- 브랜치를 사용하여 저장소의 메인 분기에 영향을 미치지 않고 여러기능이나 버그 수정을 동시에 수행할 수 있음
[git checkout -b 브랜치명]
13. Pull Request
- 다른 작업자가 push를 헀으니 해당 자료를 가져가도록 당기기를 요청
- PR은 저장소에 대한 변경 사항을 제안하고 다른 개발자와 협업하는 방법
- 코드 변경을 제안하고 검토하며 저장소의 브랜치를 병합하는 데 사용
'Study > Git' 카테고리의 다른 글
[Git] 터미널을 이용하여 GitHub업로드중 오류 fatal: Authentication failed... (0) | 2023.11.01 |
---|