국비/Git

2023.05.17 77일차-2 Git

춘핑이 2023. 5. 16. 17:53

 

git + github

1.git이란?

버전관리 프로그램
프로젝트 변경 되는 것지켜보면서 관리
어떻게 동작하는지 어떻게 활용하는지 배울 것임.
이미 어느정도 사용하고 있지만 처음부터 해보자.

2.설치

처음 설치하고 환경설정 해보기
https://git-scm.com/

windows explorer integration은 무조건필요
다 기본옵션으로 설정

3.git세팅

git bash에서 한다.
최초로 해야하는 세팅이 있다.

3.1 이메일 이름

Git 최초 설정 사용자 이름과 이메일 설정해야한다.

git config -- global user.name "이름"
git config --global user.email "이메일"

3.2 대소문자 구별

프로젝트 하다보면 대소문자 구별이 안되서 어려운경우가 있다.
리눅스 시스템은 대소문자 구별한다. git은 무시하는 경우가있다.

git config --global core.ignoreCase false

3.3 기본에디터 변경

기본에디터가 vim 사용하기 어렵다.
기본 에디터를 vscode로 변경하기

git config --global core.editor "code -w"

3.4 최종설정보기

전체설정이 나온다.

git config --global -l

4. 커맨드라인 명령어 리뷰

pwd : 현재 디렉토리 출력

mkdir: 디렉토리 만들기

cd : 파일위치변경
cd .. :부모디렉토리로 이동

ls : 파일 목록 보기
ls -A : 모든 파일 보기(숨겨진 파일 까지)
ls -l : 자세히보기
ls -Al : 모든파일 자세히 보기

echo : 메시지 출력
여러 단어로 이루어져잇다면 ""안에 쓰기
>(꺽쇠) : 파일에 덮어쓰기 (프로젝트킬때 > log.txt햇엇음)
cat : 파일 내용 보기
>>(꺽쇠*2) 파일에 이어쓰기

여러 긴메시지가 한페이지를 볼 수 없을때 페이징 페이저
:로 나온다. j누르면 한줄씩 내려간다. 위로는 k(vim에서 위아래 햇던것.)
또는 방향키로 위아래

5. 버전관리 방법

디렉토리 단위로 버전관리를 한다.
특정 디렉토리안에 들어가서 그 디렉토리를 git이 관리하는 것으로 만들어야한다.

5.1 git관리

git init

.git/파일이잇다면 git이 관리하는 것이다
이게 git repository이다.
이 파일이 있는 곳이 working directory(/f/study/git-repos/repo1)이다.
그냥 이 워킹디렉토리를 리포지터리라고 하는 경우도 있다.

워킹디렉토리 -> staging Area->.git directory(repositry)
세군데에 파일이 있을 수 있다.

즉 프로젝트안에 .git이 잇으면 git이 관리하는 폴더이다.
잘못만든것같으면 .git파일을 지우면된다.

연습
/f/study/git-repos/repo2
만들고
git이 관리하는 프로젝트 폴더로 만들기

5.2 git stage하기(index)

git add

5.3 커밋하기

git commit

파일 커밋하면 vscode가 열린다.
해야하는 일에 관련된 내용을 적어줌
commit message를써라 #은 무시되니 첫번째 줄에 입력하라고 한다.

여기에 입력
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
#    new file:   a.txt
#

commit명령어 할때마다 기록을 해준다.
파일 변경할때마다 commit은 하지 않지만 commit할때마다 작성한다.
왜 변경되엇고 왜 커밋을 해야하는지를 메시지로 남겨놔야한다.
commi여러개잇을때 파일 명을 보는게아니라 commit명만 보고 알수 있도록 해줘야한다.

이 메시지를 남기는 규칙은 회사마다 다르다.
제목 : 본문 : 주석 : 나눠쓴다

이 커밋들이 모여서 프로젝트의 역사가 되는 것이다.
다음 부터는 아래와 같이 해주기

git add 파일명
git commit 

한줄만 쓸거면 에디터를 안써도 다음과 같이하면된다.

git commit -m "메시지"

5.4 내역보기

내역 돌아보고 이전 커밋으로 이동 등등
일기장을 쓰고 일기를 적어 둔것이다.

커밋 히스토리 보기

git log

덩어리가 하나하나의 commit이다.
commit 번호
Author : 작성자 이름, 이메일
Date : 날짜 언제
왜 했는지(커밋 메시지)

현재부터 과거 순으로 나온다.

누가 했는지 언제했는지 관심없고 왜했는지만 보고 싶을때 한줄로만 보고 싶을때
커밋 번호 간결하게 커밋 메시지나온다.

git log --oneline

5.5 예전버전으로 돌아가기

git status
nothing to commit working tree clean이라고 뜨는데 이상태에서 하는게 좋다.

이전버전으로 돌아가기 위해서는 커밋 번호가 필요하다.

git checkout 커밋번호

전체 커밋 보기
현재위치 (HEAD)로 나오고 전체 커밋을 볼수 있다.

git log -all (--oneline)

이렇게 커밋을 왔다갔다하면서 볼 수 있다.
커밋을 옮겨갈때마다 (HEAD)가 바뀐다.
현재 커밋위치가 HEAD이다.
명령어는 아니고 키워드 이다.

그런데 커밋번호로 왓다갓다하는 것은 위험한 일이다.
보통 커밋에 이름을 붙여준다.

git branch 브랜치이름 커밋번호

커밋번호에 이름을 달아주었다.
log를 보면 이름이 붙은 것을 알 수 있다.
이 이름으로 안전하게 이동을 하는게 좋다.
이름으로 스티커를 붙여놓은거라고 볼 수 있다.

git branch 브랜치이름

현재 위치에서 이름을 붙일 수 있다.
별칭을 여러개 붙일 수도 있다.
계속 (master)같은게 떳던게 현재 위치의 branch명이 뜨는 것이었다.
기본 branch명이 master이다.

5.6 branch

그런데 왜 하필 branch라고 붙이나?
branch는 나뭇가지라는 뜻이다.
brach에서 commit을 하면 어떻게되나?
이 위치에서 commit을 하게 되면 새로생긴 commit을 가리키게 된다.
현재 커밋기준으로 빠져나간다.

aa추가 커밋에서 b추가 bb추가 커밋으로 분기점을 가지고 가지를 치게 된 것이다.
커밋 할때마다 최신 커밋을 따라가게 된다.

이걸 그림으로 보고싶다면

git log --all [--oneline] --graph

branch는 커밋의 이름이기도 하고 하나의 가지 시작점이기도 하다.
이 branch가 많이 생겻을때 어떻게 해야할지 내일부터 배워보자.