- Leets가
Github
를 공부하는 레포지토리입니다.
Github
를 사용하는 이유는 너무나 명확합니다.- 화가가 캔버스를 소중히 여기고 작가가 노트를 소중히 여기는 것처럼
Github
는 개발자의 놀이터입니다. GitHub
는 바로 소프트웨어 개발자를 위한 플랫폼입니다.
- 가장 중요하게 생각하는 점은 형상관리를 위한
Github
사용입니다. - 코드를 관리하고 버전을 제어할 수 있는 기능은 개발자에게 있어 아주 중요하고 필요한 기능입니다.
- 모든 커밋과 변경 사항을 문서화하는 것에 더하여 프로젝트에 대한 기록을 남길 수 있습니다.
- 단순히 취업 포트폴리오를 위해 사용되는
Github
를 넘어Github
과 친해지는 것이 이 레포지토리의 목적입니다. - 더 나아가 오픈소스 기여,
CI/CD
, 코드리뷰까지 확장되는 성장을 위해 학습합니다. - 동료와의 협업을 증진하고 더 나은 코드를 위해 고민하며(코드 리뷰) 더 넓은 소프트웨어 생태계에 기여(컨트리뷰터)하는 것을 목표합니다.
Github
를 사용하기 어려운 사람- 협업에서
Github
를 사용하고 싶은 사람
- 필수 명령어 학습
- 이슈,
PR
, 브랜치에 대한 이해
- 이슈를 생성합니다.
- 해당 이슈 이름 + 생성된 이슈 번호의 브랜치를 생성합니다.
- 해당 브랜치에서 작업합니다.
- 변경사항을
add
,commit
,push
합니다. PR
을 작성합니다.merge
합니다.
PR
을 생성한 이후 2명 이상의Approve
를 승인 받은 후에merge
합니다.- 컨플릭트가 나는 경우 스스로 해결합니다.
- 레포지토리 이름은
이름.원하는 확장자
입니다. - 이슈를 생성하는 경우
[이름] Git 공부 주제
와 같이 제목을 작성합니다. PR
을 작성하는 경우 이슈와 동일한 제목을 사용합니다.
## 1. 무엇을?
<br>
## 2. 상세 설명
<br>
## 3. 추가 사항
<br>
## 1. 무슨 이유로 코드를 변경했나요?
<br>
## 2. 관련 스크린샷을 첨부해주세요.
<br>
## 3. 완료 사항
<br>
## 4. 추가 사항
<br>
- Udacity Conventions를 사용합니다.
펼쳐 보기
- IDE (BE:
IntelliJ
, FE :VSCode
) - Github 계정
- Access Token 생성 (
Mac
만 해당)- Github 설정 맨 아래
Developer settings
선택 Personal access tokens
의Tokens(classic)
클릭Generate new token(classic)
클릭- 이름 적기 +
7days
선택 - 발급
- 생성되는
token
카카오톡에 복사
- Github 설정 맨 아래
- 새로운 레포지토리 만들기
- 폴더를 의미한다.
- 아래의
root
,media
💡 아래부터는
IDE
의 터미널에서 설정
- 깃 저장소를 만들 디렉터리(로컬)를 생성한다.
mkdir practice
practice
디렉터리로 이동
cd practice
- Git을 사용할 수 있도록 디렉터리 초기화
- 폴더(로컬)와 Git 연결
git init
git config --global user.name 이름
git config --global user.email 이메일
- 변경, 스테이징 상태를 확인할 수 있다.
git status
- Git에게 버전을 만들 준비를 하라고 알려주는 과정이다.
- 로컬에서 변경/추가/제거된 파일이나 코드 ⇒ 원격 저장소로 업데이트할 준비(
Staging
) - 여러 파일을 스테이징하고 싶다면 파일명 나열 ex)
git add test_git1 test_git2 ...
- 모든 파일을 스테이징하고 싶다면
.
옵션을 추가한다.
git add practice.js practice.java
git add .
- 모든 파일 스테이징 취소
git reset HEAD
- 일부 파일 스테이징 취소 (아래의 경우
README.md
)
git reset HEAD practice.js practice.java
- 스테이징 파일을 원격 저장소로 업데이트
git commit -m "깃헙 연습"
- 커밋 기록을 자세하게 확인 가능
- 커밋 ID를 활용하여 구분하며 커밋 메시지 또한 확인할 수 있다.
git log
- 간단하게 확인하고 싶은 경우 아래 명령어 사용
git log --oneline
- 로컬 저장소와 원격 저장소를 연결한다.
Github
에서HTTPS
주소를 복사해서 명령어 뒤에 붙여넣는다.
git remote add origin {원격 저장소 HTTPS URL}
- 제대로 연결되었다면 원격 저장소의 HTTPS 주소가 출력된다.
git remote -v
- 로컬 저장소의 커밋 ⇒ 원격 저장소로 올린다. (
push
) - SSH 키를 생성하여 원격 접속하지 않았다면 Github 로그인 창이 생긴다.
git push -u origin {브랜치명}
- 레포지토리를 처음 생성한 이후
push
하면 IDE는 아래 명령어를 권장한다.
git push --set-upstream origin {브랜치명}
- 이후엔
git push
만 사용하여push
를 진행할 수 있다.
- 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능
- 형상 관리와 안정성을 유지하며 개발하는 Github의 꽃
main
,hotfix
develop
,feature
은 각 브랜치의 이름
- 브랜치 생성하기
git branch {생성할 브랜치 이름} {기준 브랜치}
git branch newBranch master/main
master
브랜치를 기준으로feat/#10/new-feature
브랜치 생성 (새로운 분기점 생성)
git branch feat/#10/new-feature master
- 다른 브랜치로 이동하기
git checkout {이동할 브랜치 이름}
- 브랜치를 생성하며 이동하기
git checkout -b {브랜치 이름} {기준 브랜치}
- 원격 브랜치 동기화
- 원격의 브랜치와 로컬의 브랜치 동기화 (원격 브랜치 다운받기)
-p
옵션은prune
을 의미fetch
⇒ 원격에서 이미 삭제된 브랜치는 목록에서 사라짐
git fetch -p
git fetch
git pull origin master/main
- 프로젝트를 진행하면서 발생하는 다양한 이벤트
- 새로운 기능을 추가하거나, 발생한 버그를 수정할 때 사용
- 쉽게 설명하자면 프로젝트의
Todo
리스트
코드를 수정했어.
어때? 잘 작성한 것 같아?
반영해줘
- 코드 변경 이유에 대해 설명 + (코드리뷰)
- 이후 브랜치에
merge
가능
- 이후 브랜치에
origin(원격 저장소)
의 내용을 브랜치로 가져온다.origin
의{브랜치명}
브랜치에 있는 파일들을 현재 브랜치로 병합한다. (merge
)
git pull origin {브랜치명}
- 쉽게 말하자면 원격 저장소의 브랜치의 파일을 현재 브랜치와 합치는 과정이다.
- 모든 브랜치 커밋 로그 보기
git log --all
- 커밋과 브랜치 관계를 그래프 형식으로 보기
git log --graph
- 커밋 로그를 간단하게 한 줄로 보기
git log --oneline
- 커밋 되돌리기
- 로컬 브랜치의 파일을 해당 커밋 전으로 되돌리고 싶은 경우 사용한다. (버전 관리의 이유)
- hard/mixed/soft 옵션
git reset --hard {commit id}
git reset --mixed {commit id}
git reset --soft {commit id}
- 원격 저장소의 마지막 커밋 상태로 되돌리는 명령어
git reset --hard HEAD
- 커밋 간의 파일 변경점 확인하기 (Commit ID는 앞 4자리만 입력해도 됨)
git diff {commit1_id} {commit2_id}
노션 링크
Made by 김성민(Collection50)