[git] Git - repository 생성, commit 하기

부지런한 배짱이🤟·2022년 4월 9일
0

공부기록

목록 보기
16/23

오늘 배운 내용
📍 깃의 작업영역 => working dir / staging / repository 에 대한 이해
📍 브랜치를 나눴을때 발생하는 충돌과 해결방법

여태까지 내가한 git 은 명령어만 외워서 commit과 push를 남발한것에 불과했다😂 제대로 공부하고 보니 git을 언제 어떻게 사용해야하는지 아주 희미하게 감을 잡을 수 있었다-!

Git, 왜 사용하는 걸까?

  • 개발자들이 효율적인 협업을 할 수 있도록 돕기 때문이다.
  • 오픈 소스이기 때문에 누구나 사용할 수 있고, 여러 버전을 동시에 관리하기 때문에 데이터의 안정성 또한 보장해준다. (파일들을 버전별로 snapshot 으로 찍어 저장한다.)
  • 모든 코드가 네트워크(중앙서비스)에 있는 SVN 에 비해 가볍고 빠르다. git은 모든 코드가 각각의 로컬에 존재하기 때문.

1️⃣ Git 설치와 초기설정과 저장소 생성하기

git 초기설정

  • git : 여러가지 git의 기능들이 떠있다면 설치되어있는것, 없다면 git을 로컬에 다운!
  • git --version : 설치된 git의 버전을 확인가능
  • git 사용자정보 등록하기
    • git 저장소가 시작되지 않은 상태에서 유저를 설정할때는 반드시 global 옵션을 붙혀줘야 바르게 작동한다.
    • 프로젝트마다 다른사용자정보 지정원한다면 global 옵션만 제거하면된다.
    • git config --global user.name"이름"
    • git config --global user.email 이메일주소
    • git config list : 설정한 정보를 확인해볼수있다.

로컬에서 Git 저장소 생성하기

  • git init practie : 원하는 프로젝트의 폴더를 생성후 git 레파지토리로 세팅해준다.
  • 기존의 폴더(디렉토리)를 사용하고싶다면 해당 폴더로 이동후 명령어 git init 만입력하면 된다.
    • cd 원하는디렉토리 > git init
    • git init ./디렉토리1/원하는디렉토리

2️⃣ Git 저장소에 반영하기(commit)

1. 작업내용 Staging 하기 (Staging 된 데이터는 commit 의 대상이된다.)

  • git은 아래 그림처러 3가지 작업영역이 존재한다.

그림

  • git add 파일명 : 파일을 준비영역으로 보내는 명령어
  • git add . : 한번에 추가할 파일이 너무 많다면 한번에
  • git reset 파일명 : 해당 파일을 staging 에서 제거하기
  • git status : staging에 올라와있는 어떤 파일이 변경되었는지 등의 파일의 상태 확인가능

🌟 프로젝트를 저장소로 만든후 파일의 상태🌟

  • untracked: (저장소 생성후) staging 한 파일이 없으므로 모든 파일이 untracked file
  • modified : Staging>commit 된 파일이 수정된 상태
  • Unmodified : commit한 파일,
    • Unmodified 파일은 항상 Git 저장소에 있는 파일과 내용이 같음을 보장

2. Git 저장소에 반영하기 (Stagin파일들을 Git저장소에 반영)

  • git commit : .git 저장소 내에 staging 에 있는 모든 파일저장
  • git commit -m”반영메세지"
    • git commit --amend : 메세지에 오타가 있거나 누락파일이 있다면 수정하기
      • 텍스트편집기 실행 > 수정하고 싶은 부분 수정후 저장하기
      • ctrl+x > y > enter : 저장하고 nano 편집기 종료
    • git commit --amend -m “수정메세지”
  • git log : 저장소 반영 내역

3. Git 관리 상태 확인 (파일들의 상태와 History 보기)

  • git status : staging 준비영역에 있는 파일들의 상태 확인
  • git diff : commit 된 파일중 변경된 사항 비교, merge conflict 해결시 충돌파일 확인할때 사용!
  • git log : .git 레파지토리에 존재하는 history 확인 (commit 한 내역)
    • git log -p -2
      • -p , --patch : 각 commit 의 수정결과를 보여주는 diff 와 같은 역할 수행
      • -n : 상위 n 개의 commit 만 보여준다.
    • git log --stat
      • --stat : 어떤 파일이 commit 에서 수정되고 변경 되었는지, 파일내 라인이 추가되거나 제거되었는지 확인
    • git log --pretty=online
      • --pretty=online : 각 commit을 한줄로 출력
    • git log --graph
      • --praph : commit 간의 연결된 관계를 아스키 그래프로 출력 (브랜치를 나눴을때 아주 유용)
    • git log -S function_name
      • -S : 코드에서 추가되거나 제거된 내용 중 특정 텍스트 (functino_name) 가 포함되어 있는지 검사

commit 까지 완료했다면 원격저장소에 push할 준비가 거의-다 되었다!

아래와 같은 과정으로 원격저장소에 Push 한다.

  • https://github.com/ : 깃헙페이지 가입후 repository 생성하기
  • git remote add origin master 복사한 주소 : 현재 프로젝트를 원격저장소에 연결하기
    • origin : 레파지토리주소의 이름> 우리가 원하는 이름으로 작성가능! default값은 origin
    • master : 원격저장소와 동기화할 branch를 의미한다.
  • git push origin master : commit한 프로젝트를 원격저장소로 발행

Branch 와 Pull,Fetch와 관련된 내용은 TIL 말고 따로 포스팅 할 예정!
아직 연습과 정리가 더 필요한 부분이다- 깃어렵다어려워..

📍 이미지 출처
[출처 : https://git-scm.com/]

profile
UX에 관심많은 프론트 엔드 개발자입니다:)

0개의 댓글