[TIL] 220928 Github, Commit

sun_U·2022년 9월 28일
0

TIL

목록 보기
3/21
post-thumbnail

Github

💡 핵심 개념 1. git push 2. git pull 3. git clone

깃허브와 로컬 레포지토리 연결

1. 깃허브에서 새 Repository 생성하기

  • 원격 레포지토리, 리모트 레포지토리(깃허브) ↔ 로컬 레포지토리(내 PC)

2. 로컬 레포지토리 → 리모트 레포지토리

  • 로컬 레포지토리의 내용을 처음으로 리모트 레포지토리에 올릴 때
git remote add origin [리모트 레포지토리 주소]

git push -u origin master

3. 로컬 레포지토리의 변경 내용을 리모트 레포지토리에 반영하기
git push

  • README.md 파일의 경우 리모트 레포지토리에서 바로 보여줌
git add .

git push

4. 리모트 변경 내용을 로컬에 반영하기
git pull

  • 리모트 레포지토리에서 새로 커밋한 내용을 로컬 레포지토리에 반영

+cat [파일명] : 파일 내용 확인

리모트 레포지토리를 사용하는 이유

  1. 안전성
  2. 협업 가능

타인의 git push 허용

  1. 리모트 레포지토리 Settings → Menage access
  2. invite a collaborator에서 사용자 초대
  3. 초대 받았으면 Accept invitation

다른 프로젝트 가져오기

  • 기존의 프로젝트와 섞이지 않게 위치 변경 필요
  1. 리모트 레포지토리 Code → Clone HTTPS 주소 복사
  2. git clone [주소]

오픈 소스 프로젝트

소스 코드가 공개되어 있는 프로젝트

  • 오픈 소스 소프트웨어 - numpy, Linux, MySQL Server, React Native, Vue.js…
  • 장점 : 무료, 오픈 소스 프로젝트에 참여 중인 다른 개발자들에게 질문 가능, 표준처럼 사용되는 오픈 소스 프로그램을 활용하면 개발 속도를 단축 시킬 수 있음.
  • 단점 : 참여자의 수나 실력에 따른 코드의 신뢰성, 문제 발생시 책임의 주체 불명.

Commit

💡 커밋을 한다고 Staging Area에 있던 파일들이 사라지는 것은 아님! 그대로 남아 있다가 새로운 파일이 추가되거나 새로운 버전으로 교체

커밋 히스토리

  • git log
    • 커밋 아이디(=커밋해시), 커밋한 사람, 커밋 날짜, 커밋 메시지 확인
    • git log --pretty=oneline : 한 줄 씩 확인
  • git show [커밋 아이디]
    • 특정 커밋에서의 변경사항 확인
    • 커밋 아이디를 모두 작성하지 않아도 확인 가능

최신 커밋 수정하기

  • git commit --amend
    • 최신 커밋을 수정해 다시 새로운 커밋으로 만들기
    1. 파일 수정 후 다시 git add .
    2. git commit --amend
    3. i 를 눌러 메시지 입력
    4. esc 를 누르고 :wq 작성 후 엔터

Alias 설정

  • git config alias.별명 '기존 커맨드'
    • 예시) `git config alias.history 'log --
    • 커맨드가 긴 경우에 별명 붙여 사용하기

두 커밋 간의 차이 확인

  • git diff 아이디1 아이디2

커밋 메시지 작성 가이드라인

  1. 커밋 메시지 제목과 상세 설명 사이 한 줄 비우기
  2. 뒤에 온점 붙이지 않기
  3. 첫 번째 알파벳은 대문자로 작성
  4. 명령조로 작성
  5. 상세 내용에는 커밋 이유, 어떤 문제, 적용한 해결책의 효과 등 적기

커밋할 때 가이드라인

  1. 하나의 커밋에는 하나의 수정사항, 이슈만 남기도록 하기
  2. 현재 프로젝트 디렉토리 상태가 내부 전체 코드 실행시 에러가 발생하지 않는 상태에서만 커밋하기
  • 어떤 커밋 하나를 가리킴(보통 가장 최근 커밋)
  • working directory는 HEAD가 가리키는 커밋에 따라 구성

특정 커밋으로 돌아가기

git reset [옵션] [커밋 아이디]

  • git reset --hard 커밋 아이디 - HEAD가 특정 커밋을 가리키게 하며 working directory 내용도 과거 커밋으로 돌아감. 커밋 이후로 한 작업이 전부 사라지며 복구 불가
  • 커밋 아이디 대신 사용할 수 있는 것
    • HEAD^ : HEAD가 가리키고 있는 커밋의 바로 이전 커밋
    • HEAD~n : HEAD가 가리키고 있는 커밋의 n단계 전 커밋

태그 달기

  • 커밋 중 중요한 것에 태그를 달 수 있음
  • 보통 프로젝트에서 주요 버전을 시작하는 커밋에 사용
  • git tag [태그 이름] [커밋 아이디]
  • git tag - 태그 조회
  • git show 태그 이름 - 태그와 연결된 커밋 확인

지난 8월, 이틀 동안 Git, Github 특강을 들었었는데 그 때 복습을 제대로 안해서 기억에 남는 거라곤 git add ., git commit -m "",git push origin master 3가지였다. 그래서 그 때 만들었던 로컬 레포지토리만 사용했었는데 커밋 메시지도 엉망이고 다시 배워야겠다 생각이 들어 코드잇의 Git 강의를 들으며 정리하고 있다.

profile
Data Engineer AI/ Metaverse :)

0개의 댓글