[GitHub] 명령어 모음

klmin·2024년 12월 15일

GitHub란?

GitHub는 Git을 사용하는 프로젝트를 온라인에서 호스팅하고 관리할 수 있는 버전 관리 플랫폼이다.
이를 통해 팀원 간의 협업, 소스 코드 관리, 코드 리뷰, 이슈 관리 등을 효과적으로 수행할 수 있다.
특히, 오픈 소스 프로젝트뿐만 아니라 비공개 프로젝트 관리에도 많이 사용된다.

GitHub 주요 기능

  1. 저장소 (Repository)

    • 소스 코드를 저장하고 관리하는 공간이다.
    • Git을 통해 버전 관리가 가능하다.
  2. 브랜치 (Branch)

    • 독립적으로 작업할 수 있는 분리된 환경이다.
    • 브랜치를 활용해 새로운 기능 개발, 버그 수정 등을 진행한다.
  3. Pull Request (PR)

    • 브랜치에서 작업한 내용을 다른 브랜치(주로 main)에 병합 요청할 때 사용한다.

    • 코드 리뷰와 변경 사항 확인이 가능하다.

  4. Issues

    • 프로젝트에서 발생하는 작업, 버그, 개선 사항 등을 관리하는 기능이다.
  5. Actions

    • CI/CD(지속적 통합 및 배포)를 자동화하는 워크플로우를 설정할 수 있다.
  6. Wiki

    • 프로젝트 관련 문서화를 위한 공간이다.
  7. 프로젝트 보드

    • Kanban 스타일 보드로 작업을 관리하고 추적할 수 있다.

GitHub 자주 쓰는 명령어 정리

1. Git 초기화 및 설정

기본 명령어 양식실제 예시설명
git initgit init새 Git 저장소를 초기화 한다.
git config --global user.name "Your Name"git config --global user.name "John Doe"Git 커밋 사용자 이름을 설정한다.
git config --global user.email "your.email"git config --global user.email "johndoe@email.com"Git 커밋 사용자 이메일을 설정한다.

2. 원격 저장소 설정

기본 명령어 양식실제 예시설명
git remote add <사용할 name> <원격 저장소 URL>git remote add origin https://github.com/your-username/your-repo.git원격 저장소를 추가하고 연결한다.
git remote -vgit remote -v현재 연결된 원격 저장소 목록과 URL을 확인한다.

3. 파일 관리

기본 명령어 양식실제 예시설명
git add .git add .모든 변경 사항을 스테이징 영역에 추가한다.
git commit -m "<커밋 메세지>"git commit -m "Initial commit"변경 사항을 커밋하고 메시지를 추가한다.

4. 브랜치 관리

기본 명령어 양식실제 예시설명
git branchgit branch로컬 브랜치 목록을 확인한다.
git branch -rgit branch -r원격 브랜치 목록을 확인한다.
git branch -agit branch -a로컬 및 원격 브랜치 목록을 확인한다.
git branch --set-upstream-to=<원격 브랜치/브랜치명> <로컬 브랜치>git branch --set-upstream-to=origin/develop develop로컬 브랜치와 원격 브랜치를 연결(업스트림 설정)한다.
git branch -m <기존 이름> <새 이름>git branch -m develop bitbucket_develop로컬 브랜치 이름을 변경 한다.
git branch --mergedgit branch --merged현재 브랜치에 병합된 브랜치를 확인한다.
git branch --no-mergedgit branch --no-merged현재 브랜치에 병합되지 않은 브랜치를 확인한다.

5. Push 및 Pull

기본 명령어 양식실제 예시설명
git push <원격 저장소명> <브랜치명>git push origin main변경 사항을 원격 브랜치(main)에 푸시한다.
git push -u <원격 저장소명> <브랜치명>git push -u github develop원격 브랜치(develop)를 추적(업스트림 설정)하며 푸시한다.
git pull <원격 저장소명> <브랜치명>git pull origin main원격 브랜치(main)의 변경 사항을 가져온다.
  • git push -u 옵션 설명:

    • 원격 브랜치가 없는 경우 : 원격 저장소에 develop 브랜치를 새로 생성하고 로컬 브랜치와 업스트림 관계를 설정한다.

    • 원격 브랜치가 있는 경우 : 로컬 브랜치의 변경 사항을 원격 브랜치에 푸시하고 업스트림 관계만 새로 설정한다.

    • 업스트림 관계 설정 후에는 git push 또는 git pull만 입력하면 자동으로 해당 원격 브랜치와 동기화된다.

6. 병합(Merge)

기본 명령어 양식실제 예시설명
git merge <브랜치명>git merge feature-branch지정된 브랜치(feature-branch)를 현재 브랜치에 병합한다.

7. Rebase

기본 명령어 양식실제 예시설명
git rebase <브랜치명>git rebase feature-branch현재 브랜치를 지정한 브랜치(feature-branch) 기준으로 재배치한다.
git rebase -igit rebase -i HEAD~3최근 3개의 커밋을 인터렉티브하게 수정, 스쿼시, 제거 등 변경할 수 있다.
git rebase --continuegit rebase --continue충돌 해결 후 rebase 과정을 계속 진행한다.
git rebase --abortgit rebase --abort진행 중인 rebase를 중단하고 이전 상태로 되돌린다.
  • git rebase와 git merge 차이점
    • git rebase는 커밋 기록을 깔끔하게 유지하며 히스토리를 재작성한다.
    • git merge는 두 브랜치를 병합하며 히스토리를 그대로 유지한다.

8. 기록 확인 및 변경 사항 비교

기본 명령어 양식실제 예시설명
git loggit log커밋 기록을 확인한다.
git log --onelinegit log --oneline간단한 커밋 ID와 메시지를 확인한다.
git log --graphgit log --graph브랜치 병합 히스토리를 시각적으로 확인한다.
git diffgit diff변경 사항을 비교한다.

9. 클론 및 포크

기본 명령어 양식실제 예시설명
git clone <원격 저장소 URL>git clone https://github.com/your-username/your-repo.git원격 저장소를 복제한다.
git clone -b <브랜치명> <원격 저장소 URL>git clone -b develop https://github.com/your-username/your-repo.git특정 브랜치(develop)를 복제한다.
git clone --depth 1 <원격 저장소 URL>git clone --depth 1 https://github.com/your-username/your-repo.git최신 커밋만 복제하여 저장소 크기를 줄인다.

10. Stash 관련 명령어

기본 명령어 양식실제 예시설명
git stashgit stash현재 작업 내용을 임시 저장한다.
git stash -ugit stash -u추적되지 않은 파일(언트랙트 파일)까지 포함하여 임시 저장한다.
git stash listgit stash list현재 저장된 스택(임시 저장 목록)을 확인한다.
git stash popgit stash pop스택에서 가장 최근의 임시 저장 항목을 제거하고 적용한다. (적용 후 해당 항목은 삭제됨)
git stash apply <stash 값>git stash apply stash@{2}특정 임시 저장 항목을 선택하여 적용한다. (적용 후에도 해당 항목은 스택에 남아 있음)
git stash drop <stash 값>git stash drop stash@{2}특정 임시 저장 항목을 삭제한다.
git stash cleargit stash clear모든 임시 저장 항목을 삭제한다.

11. 기타 주요 명령어

기본 명령어 양식실제 예시설명
git reset --hard <커밋 해시>git reset --hard abc1234특정 커밋 상태로 되돌린다.
git reset --soft HEAD~1git reset --soft HEAD~1최근 1개의 커밋을 취소하고 변경 사항은 스테이징 영역에 유지한다.
git reset --mixed HEAD~1git reset --mixed HEAD~1최근 1개의 커밋을 취소하며 변경 사항은 워킹 디렉토리에 남긴다.
git cherry-pick <커밋 해시>git cherry-pick abc1234특정 커밋을 현재 브랜치에 적용한다.
git blame <파일명>git blame file.txt각 줄이 마지막으로 수정된 커밋 ID, 작성자, 시간 정보를 확인한다.

참고 : https://docs.github.com/ko
https://git-scm.com/doc

profile
웹 개발자

0개의 댓글