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 [파일명]
: 파일 내용 확인
리모트 레포지토리를 사용하는 이유
- 안전성
- 협업 가능
타인의 git push 허용
- 리모트 레포지토리 Settings → Menage access
- invite a collaborator에서 사용자 초대
- 초대 받았으면 Accept invitation
다른 프로젝트 가져오기
- 기존의 프로젝트와 섞이지 않게 위치 변경 필요
- 리모트 레포지토리 Code → Clone HTTPS 주소 복사
git clone [주소]
오픈 소스 프로젝트
소스 코드가 공개되어 있는 프로젝트
- 오픈 소스 소프트웨어 - numpy, Linux, MySQL Server, React Native, Vue.js…
- 장점 : 무료, 오픈 소스 프로젝트에 참여 중인 다른 개발자들에게 질문 가능, 표준처럼 사용되는 오픈 소스 프로그램을 활용하면 개발 속도를 단축 시킬 수 있음.
- 단점 : 참여자의 수나 실력에 따른 코드의 신뢰성, 문제 발생시 책임의 주체 불명.
Commit
💡 커밋을 한다고 Staging Area에 있던 파일들이 사라지는 것은 아님!
그대로 남아 있다가 새로운 파일이 추가되거나 새로운 버전으로 교체
커밋 히스토리
git log
- 커밋 아이디(=커밋해시), 커밋한 사람, 커밋 날짜, 커밋 메시지 확인
git log --pretty=oneline
: 한 줄 씩 확인
git show [커밋 아이디]
- 특정 커밋에서의 변경사항 확인
- 커밋 아이디를 모두 작성하지 않아도 확인 가능
최신 커밋 수정하기
git commit --amend
- 최신 커밋을 수정해 다시 새로운 커밋으로 만들기
- 파일 수정 후 다시
git add .
git commit --amend
i
를 눌러 메시지 입력
esc
를 누르고 :wq
작성 후 엔터
Alias 설정
git config alias.별명 '기존 커맨드'
- 예시) `git config alias.history 'log --
- 커맨드가 긴 경우에 별명 붙여 사용하기
두 커밋 간의 차이 확인
커밋 메시지 작성 가이드라인
- 커밋 메시지 제목과 상세 설명 사이 한 줄 비우기
- 뒤에 온점 붙이지 않기
- 첫 번째 알파벳은 대문자로 작성
- 명령조로 작성
- 상세 내용에는 커밋 이유, 어떤 문제, 적용한 해결책의 효과 등 적기
커밋할 때 가이드라인
- 하나의 커밋에는 하나의 수정사항, 이슈만 남기도록 하기
- 현재 프로젝트 디렉토리 상태가 내부 전체 코드 실행시 에러가 발생하지 않는 상태에서만 커밋하기
HEAD
- 어떤 커밋 하나를 가리킴(보통 가장 최근 커밋)
- 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 강의를 들으며 정리하고 있다.