git hub 기본 이론

shinyeongwoon·2022년 12월 20일
0

git

목록 보기
1/4

git ?

파일을 편집 전 상태로 되돌리고 싶을 때 어떻게 하고 있나?
가장 간단한 방법은 편집하기 전에 파일을 미리 복사해 두는 것

221221doc_first
221221_doc
수정본
221221doc최종본
221221doc최종본
221221_doc
최종본레알
221221_doc
최종본_찐막

특별한 규칙 없이 마음대로 이름을 붙여놓는 경우 어느 파일이 최신인기, 또 어떤 파일의 어떤 부분이 변경된 것인지 파악하기 어렵다.

여러 명이 공유한 파일을 동시에 편집하는 바람에 다른 사람이 먼저 변경하고 있던 내용을 지울 수 도 있다.

이런 문제를 해결하기 위해 만들어진 것이 git과 같은 버전 관리 시스템이다.

git : 소스코드를 효과적으로 관리하기 위해 개발된 '분산형 버전 관리 시스템
원래는 Linux 소스 코드를 관리할 목적으로 개발 됨

git 에서는 소스 코드가 변경된 이력을 쉽게 확인 할 수 있고, 특정 시점에 저장된 버전과 비교하거나 특정 시점으로 돌아갈 수 있다.

또 업로드 하려는 파일이 누군가 편집한 내용과 충돌한다면, 서버에 업로드 할 때 경고가 발생
누군가 애써 편집한 내용을 덮어써버리는 실수는 없을 것!!

git 이용방법

  • Terminal 이용하는 방법
  • SourceTree UI Program을 이용하는 방법

Setup 하기

git 다운로드 하기

터미널에서

git --version 

으로 git version 확인 가능

없다면,

https://git-scm.com/downloads

에서 OS에 맞게 Download

UI Application Sourcetree download

https://sourcetreeapp.com

에서 OS에 맞게 Download

git 모든 설정 확인하기

git config --list

사용자 정보 설정하기

git config --global user.name "shinyeongwoon"
git config --global user.email "duddns119@naver.com"
git config user.name
git config user.email

windows
git config --global core.autocrlf true

mac 사용자
git config --global core.autocrlf input 

운영체제에서 에디터마다 새로운 줄바꿈을 할때 들어가는 문자열이 달라짐
windows => text\r\n \arriage-return\line feed 2개가 동시에 들어감s
mac => text\n \line feed 하나만 들어감

windows에서 true 로 설정할 경우 git에 등록할때는 text\n 으로 저장하고
받아올때는 text\r\n으로 받아온다

git 명령어 형식

git 명령어 -option

git 사이트 -> Documentation -> Reference : git에서 사용하는 모든 명령어를 볼 수 있음

git은 어떤 폴더든 초기화에서 사용할 수 있음

터미널에서
cd projects

windows는 temp 폴더 활용

mkdir git 폴더 만들기

git init

깃 초기화하기
폴더에 .git 숨겨진 directory가 생성됨
open .git으로 폴더를 확인 해 보면 git repository에 있는 모든 정보들이 저장 되어 있음

git init 시 기본적으로 master branch가 생성됨
기본적으로 commit 해서 version을 관리하는 우리의 브렌치는 마스터 브랜치

rm -rf .git으로 git 프로젝트 삭제 가능

git-status : 깃 상태 확인하기

반복적으로 사용하는 명령어 단축해서 사용하기

git config --global alias.st status

명령어에서 사용하는 다양한 속성값 보기 --xx
git 명령어 --h

git 의 work flow

3가지 작업 환경

working directory : 내가 작업하고 있는 프로젝트의 디렉토리

  • untracked
    - git이 모르는 상태
    - 새로 만들어진 파일
    - 기존에 존재하던 프로젝트에서 git 을 초기화 한 경우
    - Working Directory에 있는 파일이지만 Git으로 버전관리를 하지 않는 상태

  • tracked
    - git이 이미 알고 있는 파일
    - unmodified : 수정 되지 않은 파일 : 신규로 파일이 추가 되었을때, new file 상태와 같다 ($ git add 상태)
    - modified : 수정이 된 파일 : 수정이 된 파일만 stagin area로 옮겨 갈 수 있다.

staging area : 커밋을 하기 위해 $git add 명령어로 추가한 파일들이 모여 있는 공간
- staged : Staging Area에 반영된 상태

.git directory(Repository) : 커밋들이 모여있는 저장소

이력을 관리하는 저장소

Git 저장소가 제공하는 장점 : 파일이 변경 이력 별로 구분되어 저장된다는 점
비슷한 파일이라도 실제 내용 일부 문구가 서로 다르면 다른 파일로 인식하기 때문에 파일을 변경 사항 별로 구분해 저장할 수 있다.

원격 저장소와 로컬 저장소

Git은 원경 저장소와 로컬 저장소 두 종류의 저장소를 제공

  • 원격 저장소 (Remote Repository)
    파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소
  • 로컬 저장소 (Local Repository)
    내 PC에 파일이 저장되는 개인 전용 저장소

변경을 기록하는 커밋

파일 및 폴더의 추가/변경 사항을 저장소에 기록하려면 '커밋'이란 버튼을 눌러줘야 한다.
커밋을 하면 이전 커밋 상태부터 현재 상태까지의 변경이력이 기록된 커밋(혹은 리비전)이 만들어 진다.
커밋을 시간순으로 저장된다.
각 커밋에는 영문/숫자로 이루어진 40자리 고유 이름이 붙는다.
이 40자리 이름을 보고 각 커밋을 구분하고 선택한다.
커밋을 이력을 남기는 중요한 작업이기 때문에 커밋 메세지를 필수로 입력해야 한다.
메세지가 없으면 커밋이 실행 되지 않는다.

작업트리 (work tree)

git에서는 우리가 흔히 말하는 폴더를 '작업트리(work tree)'라고 부른다.
커밋을 실행하기 전의 저장소와 작업트리 사이 존재하는 공간을 '인덱스'라고 한다.

0개의 댓글