참고 : https://goddaehee.tistory.com/91
https://kotlinworld.com/285
https://hackmd.io/@oW_dDxdsRoSpl0M64Tfg2g/ByfwpNJ-K
https://www.lainyzine.com/ko/article/git-clone-command/
https://smartbase.tistory.com/69
버전 관리 시스템 (형상 관리 도구, configuration management tool) 중 하나이다. 소프트웨어를 개발하는 기업의 핵심 자산인 소스코드를 효과적으로 관리할 수 있게 해주는 무료 공개 소프트웨어이다.
협업하고 있는 코드를 저장할 서버가 필요하다. 버전 관리 시스템을 지원하는 웹호스팅 서비스의 기능으로, push, pull request같은 이벤트에 반응하여 자동으로 작업 (배포 등)을 실행하게 할 수 있다.
git의 최신 버전을 다운받기 위해 Homebrew
를 이용한다.
✋ Homebrew는?
맥에서 '다운로드 패키지'를 관리할 수 있는 툴이다.
'brew install 프로그램이름'
을 입력하면 자동으로 다운로드, 설치를 해준다.
최신 버전을 설치하기 위해서 아래 공식 홈페이지에서 제공하는 명령어를 terminal에 입력한다.
https://brew.sh/index
⭐️ 맥북의 경우 OS를 최신버전으로 업데이트를 꼭 해야하는데, 이게 제일 오래걸린다.
Homebrew가 설치되었는지 명령어로 확인해본다.
brew help
git 설치 명령어
brew install git
설치가 제대로 되었다면 버전확인 시 버전이 나온다.
$ git --version
git version 2.37.2
git에서 커밋할 때 사용할 이름과 이메일을 지정할 수 있다. 이때 커밋에 기록된 이메일은 GitHub의 사용자를 연결할 때도 사용되기 때문에 GitHub에 회원가입을 하였다면 같은 이메일을 사용한다.
$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"
$ git commit -m'Initiazile repsitory'
[master (root-commit) 7c4f2a2] Initiazile repsitory
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 .gitignore
커밋을 하고 보이는 커밋 정보 7c4f2a2
를 확인한다.
$ git show 7c4f2a2
commit 7c4f2a27ac78f24fe65a2aa906e7c552e97d5c84
Author: Your Name <you@example.com>
Date: Sat May 15 17:14:44 2021 +0900
Author
에 설정한 이름과 이메일이 남는다.
$ git config --list
$ git config user.name
$ git config user.email
# 전역 설정을 삭제
$ git config --global --unset user.name
$ git config --global --unset user.email
# 개별 저장소의 설정을 삭제
$ git config --unset user.name
$ git config --unset user.email
일반적으로 프로젝트 단위로 git 저장소를 만들어 사용하며, 소스 코드 파일을 git을 관리하기 위해서는 git을 초기화해야한다. (GitHub 상의 오픈소스를 개발하거나, 이미 만들어져 있는 프로젝트에 참여할 때는 git clone으로 원격 저장소를 로컬에 복제해와서 사용한다.)
저장소로 사용하고자하는 디렉토리로 이동한 다음 git init을 인자없이 실행한다.
(VS code 등 IDE의 터미널에서 실행할 경우 terminal > new terminal을 클릭하면 해당 프로젝트 폴더에서 시작해서 디렉토리로 이동할 필요가 없다.)
$git init
깃 저장소 상태 및 로그 확인하기
$ git status
$ git log
처음 커밋은 루트 커밋으로 특별한 취급을 받으며 rebase 하는 방법이나 git add를 되돌리는 법도 다르다. 따라서 git 저장소에서 필수적으로 사용하는 .gitignore
빈 파일을 처음 커밋해주는 경우가 일반적이다.
touch
: 뒤에 파일이름을 입력하면 그 파일의 타임스탬프를 현재시간으로 업데이트 / 입력한 파일이 없을 때는 새로운 빈 파일을 생성.
$ touch .gitignore
.gitignore을 add 하고 커밋 내용을 입력한다.
$ git add .gitignore
$ git commit -m "initialize git repository"
[master (최상위-커밋) b21049a] initialize git repository
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 .gitignore
GitHub에 새로운 repository를 만든다. 제목을 입력하고 나머지는 체크 해제한다.
세가지 방법이 나오는데 두 번째인 초기화가 되어있는 저장소를 push하는 방법을 이용한다.
GitHub의 default branch가 main이 되면서 이를
1) 현재 master인 브랜치 이름을 main으로 바꾸거나
2) master로 푸시하고 GitHub 설정에서 기본 브랜치 설정을 master로 바꾸는 방법
으로 대처한다. 위의 그림처럼 홈페이지에서는 1)의 방법을 안내하고 있다. (하지만 그냥 origin master로 해도 기본 브랜치가 master로 되어있다. 이후에 바뀐건지 이러면 안되는건지는 더 찾아봐야 하겠다..)
1) 현재 브랜치가 master고 해당 브랜치 이름을 main으로 바꾼다.
git branch -M main
하나 이상의 커밋을 만든 후에 현재 브랜치의 변경 사항을 GitHub main 브랜치에 푸시하고 GitHub main 브랜치를 따라가도록 만들기 위해서 git push -u 옵션을 사용한다. -u는 upstream의 약자로 대상 브랜치를 현재 로컬 브랜치의 업스트림 (로컬 브랜치가 따라가는 브랜치)로 만드는 명령어이다.
git push -u origin main
2) GitHub 의 기본 브랜치를 master로 바꾸기
하나 이상으 커밋을 만들고 master로 푸시한다.
git push origin master
github repository - settings - branches - default branch에서 switch to another branch로 master로 변경한다.
git remote add origin https://github.com/coastby/prac.git
#원격 저장소 확인
# 연결
git remote -v
git branch -M main
git push -u origin main
.
.
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
GitHub에서 새로고침해서 확인하면 해당 파일이 들어와 있다.
다 올려도 업데이트가 된다.
git add .
git commit -m "first commit"
git push origin main
git repository에서 주소 복사하기 (HTTPS형식, SSH 형식으로 받을 수 있다)
아래 코드를 터미널에서 입력한다.
DIR
: 저장소를 로컬에 복제할 위치이며 생략가능하다. 폴더이름을 입력하면 새폴더가 생성되고 그 안에 코드가 다운로드된다. 생략하면 깃허브 프로젝트 이름으로 폴더가 자동으로 생기고 그 안에 코드가 다운로드된다.
git clone (복사한주소) (DIR)
코드를 연다.
cd (DIR)
code .
코드를 수정하고 위의 추가하기 방법으로 다시 올려준다.
협업이라 하면 바로 마스터 또는 메인 브랜치로 올리면 안되고, 브랜치를 만든 후 거기에 푸시를 해준다.
git checkout -b (브랜치이름)
git add .
git status
git commit -m "commit 내용"
git push origin (브랜치이름)
git pull origin master