- 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 practicepractice디렉터리로 이동
cd practice- Git을 사용할 수 있도록 디렉터리 초기화
- 폴더(로컬)와 Git 연결
git initgit 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.javagit 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,hotfixdevelop,feature은 각 브랜치의 이름
- 브랜치 생성하기
git branch {생성할 브랜치 이름} {기준 브랜치}
git branch newBranch master/mainmaster브랜치를 기준으로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)










