Git - 기초

lsjoon·2022년 12월 2일
0

CS & PROGRAMMING

목록 보기
3/15

Git

git의 특징

  1. 가지치기와 병합
    메인코드에 독립성을 유지한 채 각각의 개발 가능.

  2. 가볍고 빠름
    대부분의 작업이 로컬에서 진행
    업로드 할 때만 네트워크 필요
    (SebVersion은 중앙 서비스)

  3. 분산 작업
    복사된 프로젝트로 독자적인 작업 가능

  4. 데이터 보장
    모든 파일은 체크섬을 통해 무결성 검사 진행

  5. 준비 영역
    저장소에 저장하기 전에 대기 장소가 있음

  6. 오픈 소스
    누구나 접속, 이용, 발전가능

Git 초기 설정

git config --global user.name "NAME"
git config --global user.email E-MAIL
사용자 이름과 e-mail을 등록
-프로젝트마다 사용자 정보를 다르게 설정 : 저장소 생성 후 --global 빼고 입력

git config --list
설정 정보 확인


Git 저장소

git init
저장소 설정

git commit -m "메세지"
Staging Area에 있는 파일을 Repository에 반영
-git commit 만 작성 시, nano Editor 실행, Ctrl+X > Y > Enter 로 저장

git commit --amend
저장소 반영 내용 변경 (메세지 오타 수정, 누락된 파일 반영 등)

Git 파일 상태 확인

git status
Staging file 들의 상태 확인

git diff
commit 된 파일 중 변경된 사항 비교

Git log

git log
.git repository에 존재하는 history 확인
--oneline 을 추가 시, 각 commit을 한 줄로 출력

git log --amend -m "메세지"
--amend: commit message 수정

git log -p -2
-p, --patch : 각 commit의 수정 결과를 보여주는 diff 역할
-n : 상위 n개의 commit만 출력

git log --stat
--stat :어떤 파일이 commit에서 수정되고 변경되었는지, 파일 내 라인이 추가되거나 삭제되었는지 확인

git log --graph --all
--graph : commit 간 연결된 관계를 아스키 그래프로 출력 (Branch)

git log -S function_name
-S : 코드에서 추가되거나 제거된 내용 중 특정 텍스트(function_name)가 포함되어 있는지 검사


Git 가지치기

Branch

독립적으로 어떤 작업을 진행하기 위한 개념
각각의 Branch는 다른 Branch의 영향을 받지 않음 (= 독립적)

  • 메인 Branch ( master )
    배포할 수 있는 수준의 안정적인 Branch
  • 토픽 Branch ( like_fature )
    기능추가나 버그 수정과 같은 단위 작업을 위한 Branch

<master> : 최초로 갖고있는 기본값

git branch <like_feature>
> <like_feature>이라는 이름의 Branch 생성

git branch
> 현재의 Branch 목록 확인

git checkout <like_feature>
> <like_feature> Branch 로 이동


Merge

  1. <like_feature> Branch의 내용이 <master> Branch 에서 업데이트 된 내용이므로 곧바로 Merge 됨 (= fast-forward)

  2. Merge 된 <master> Branch가 새로운 체크포인트를 생성

git checkout <master>
git merge <lie_feature>
<master> Branch 를 중심으로 <like_feature>을 병합

git branch --merge
Merge 된 Branch 확인 가능

git branch -d <like_feature>
<like_feature> Branch 를 삭제


Merge conflict

Merge 한 두 Branch 에서 같은 파일을 변경했을 때 충돌이 발생

  1. Merge 후 CONFLICT 키워드가 출력됐을 때, git status 로 어느 파일에서 충돌이 발생했는지 확인 가능

  2. 해당 파일을 직접 열어서 수정 ( 수정 후, '<<<<<' '=======' '>>>>>' 가 포함된 행을 삭제)

  3. git add, git commit 후 다시 Merge

되돌리기

git reset <commit ID>
HEAD의 위치를 <commit ID>로 되돌림
git reset --hard <commit ID>

profile
중요한 것은 꺾여도 그냥 하는 마음

0개의 댓글