Git이란 ? 버전 관리 시스템의 한 종류
버전관리 시스템(형상관리)
버전관리 시스템, 형상관리, vcs 통용해서 사용중 -> git, svn 등,, 버전 관리 시스템을 말하는 것
버전관리를 하는 이유?
코드를 짜면 파일이 나오는데, 그 파일이 계속해서 수정 과정을 거친다. 이러한 히스토리?를 기록
git 등장 배경
버전관리 시스템이 없을때, 파일명으로 최신파일을 구분하기 위해 관리를 했다.
또는 컴퓨터가 고장나거나 다운되면 코드가 날아가버리는 경우가 많았다.
버전관리 시스템의 종류
CVS : commit 중 오류 발생시 rollback이 되지 않는 등의 문제로 SVN으로 대체됨
SVN : 2000년대에 만들어져서 현재까지 두루 사용
Git : SVN보다 빠른 속도와 많은 기능 지원, 현재 많은 기업들이 사용
Github
Gitlab
우리는 Github를 사용할 것이다.
#global name & email 설정을 하면 자동으로 업로드 된다
git config --global user.name (github 가입할 때 입력한 이름)
git config --global user.email (github 가입할 때 사용한 이메일)
#window 설정, 가져올때는 LF를 CRLF로 변경 보낼때는 CRLF를 LF로 변경
git config --global core.autocrlf true
#mac 설정
git config --global core.autocrlf input
#editor
git config --global core.editor (설정할 에디터이름)
#전체 설정한 목록 확인
git config --list
#항목별 설치 확인
git config <key> (ex. user.name, user.email ,...)
#git 버전 확인
git --version
workspace 생성
mkdir git_ws
workspace로 이동한 뒤 working directory 생성
cd git_ws
git_ws mkdir test_project
생성한 폴더로 이동하여 Git init을 실행하면 Repository 생성
여기까지 진행하면 (master)라고 생기면서 working directory가 생성됨
git_ws cd test_project
git init
.git 확인 => ls -all 입력해서 .git 폴더를 확인, 폴더 안에 git 관련 파일들이 있음
ls -all
파일 생성
touch 파일이름
working directory에 파일 생성
touch test.txt
ls #확인
Git status
git에 존재하는 파일 확인, 파일 상태까지 체크
Git add
git add 파일이름
working directory에서 변경된 파일을 index(stage)에 추가
Git commit
git commit -m "commit에 대한 설명" 파일이름
git hub에서 create repository 버튼 클릭하여
비어있는 remote repository 생성
github token 생성
보안상의 이유로 비밀번호 대신 token을 사용함
git hub의 사용자 메뉴 - settings - developer settings
토근이름, 사용기한, scope를 설정하면 생성됨
token값은 페이지를 벗어나면 다시 안보이기 때문에 다른 곳에 기록해두기
remote repository 등록
git hub home(고양이 클릭) - 생성해둔 remote repository 선택 -
https 선택 확인, 주소 복사 - local repository에 remote repository 등록
주소에서 //와 github사이에 username:token을 입력하고 github앞에 @를 추가
window git bash는 ctrl+v가 안되므로
shift + insert 로 복붙하기
git remote add origin http://<username>:<token>@github.com/~~
remote repository 정보확인
git remote -v
git push origin master
보통 branchname은 master (안되면 main)
local repository(head)에 반영된 변경내용을 remote repository에 반영하기 위해서 git push를 사용
remote repository 확인
git hub 홈페이지의 remote repository 페이지를 새로고침하면 push된 파일이 나온다
remote repository에서 작업한 것을 local repository로 가져오는 과정
remote repository에 README.md 파일 생성
git hub의 remote repository 페이지에서 add a readme 클릭 - 모두 default옵션으로 저장 - commit changes(remote repository에서 파일을 생성해서 add, commit까지 하는 옵션)
<참고> .md 파일은 markdown 문법을 사용하는 파일
git pull
git pull origin master
local repository에도 readme.md 파일이 생성됨
cat 파일명
파일 내용 읽어오기
<정리>
내컴퓨터에서 작업하는 것 => local repository
git_ws > test_project 폴더를 만들어서 git init을 해주어 working directory로 만들었다(test_project 폴더는 git에서 관리)
text.txt 파일을 -> add, commit하여 head로 -> 이후 문제가 없다면 push하여 local repository에 있는 파일이 remote repository에도 올라감
pull: push의 반대, remote repository에서 작업한 것을 local repository로 가져오는 과정
항상 git status을 확인하는 습관!!
git add
git commit
git push
git pull
local repository를 생성하지 않은 상태에서
git clone 명령을 사용하여 remote repository를 local에 복제할 수 있다.
실무에서도 많이 사용하는 방법으로 이를 실습해보자.
파일이 들어있는 remote repository 생성
README file
gitignore
Default Branch
repository를 생성하면 기본으로 생성되는 branch : master or main
git hub는 main이 디폴트 값이고, resopitory별로 수정도 되고, 디폴트 값도 수정가능하다.
default branch의 디폴트값 수정
git hub의 사용자 메뉴 - settings - Repositories에서 변경 가능
Git Clone
git clone 주소
여기서도 주소안에 username,token를 같이 등록
앞서 local에 폴더를 만들고, git init으로 폴더를 초기화하고, push, pull 하는 모든 과정이 git clone으로 가능
branch 조회
git branch
: local branch
git branch -r
: remote branch
git branch -a
: local + remote 조회
branch 생성 git branch branchname
branch 이동 git checkout branchname
branch 생성+이동 git checkout -b branchname
: branch가 없다면 생성후에 이동해줌, 이미 있는 상태는 x
branch 생성(repository로) git push origin branchname
branch 삭제(local repository) git branch -d branchname
: 삭제하려는 branch에 있으면 삭제 불가
branch 삭제(remote repository) git push origin --delete branchname