GitHub - 명령어(자주 쓰는 명령어)

손지민·2023년 10월 22일
0

GitHub

목록 보기
2/12

1. Git 자주 사용하는 명령어

1.1. 깃 초기 설정

  % git init                                    // 깃 시작하기
  % git config --global user.name {이름}          // 전역 이름 설정 
  % git config --global user.email {깃이메일}   // 전역 이메일 설정

  % git remote add {원격저장소별명} {깃주소}  // 깃 원격 저장소 연결
  % git pull {원격저장소별명} {브랜치이름}         // 업데이트
  % git push {원격저장소별명} {브랜치이름}       // 업로드

  // 맥-윈도우 간 개행문자가 다름으로 인해 텍스트파일 깨지는거 잡아주는 명령
  % git config --global core.autocrlf true

1.2. 깃 저장소 폴더로 내려받는 방법

  % git clone {깃 주소}

1.3. 업데이트

  % git pull {원격저장소별명} {브랜치명}

1.4. 업로드

% git add {파일명} // 경로에서 .을 입력하면 변경된 모든 파일
% git add -u // 수정되거나 삭제된 파일 반영
% git commit -m“커밋 메세지”
% git commit -a-m”커밋 메세지” // 수정되거나 삭제된 파일만
% git push {원격저장소별명} {브랜치명} // 원격 저장소에 업로드
% git push origin 브랜치명 -f // 경고 무시하고 강제로 push하기

1.5. 대용량 업로드

% brew install git-lfs // git-lfs 설치
% git las install // 해당 디렉토리로 이동후
% git rm -r --cached // git add기록이 있다면 unstaging
% git las track “파일명” // 업로드하려는 파일 선택
% git add .gitattributes

1.6. 언로드

  % git reset HEAD [파일명]  // git add 취소하기 
  % git reset HEAD^               // git commit 취소하기
  % git commit --amend       // git commit 메세지 변경 

2. Git 명령어

2-1. Git 시작하기

  % git init      // 현재 폴더에 Git 로컬 저장소 생성 (최초 1회만 생성)
  % git status    // Git 워킹트리의 상태를 보는 명령
  % git status -s // git status 명령보다 짧게 요약해서 상태를 보여주는 명령, 변경된 파일이 많을 때 유용

❗️프롬프트: 끝에 브랜치명이 보인다면 이는 Git 작업 폴더라는 의미
❓워킹트리: 작업 폴더와 같은 말로 사용자가 파일과 하위폴더를 만들고 결과물을 저장하는 곳

2-2. 옵션 설정하기

우선순위 : 지역 > 전역 > 시스템

  • --system: pc 전체 사용자를 위한 시스템옵션

  • --golbal: 현재 사용자를 위한 전역옵션

  • --local: 현재 git 저장소에서만 유효한 지역옵션

    % git config --system core.editor      // 기본 에디터 조회
    % git config --global {옵션명}          // 전역옵션 조회
    % git config --global {옵션명} {새로운값}  // 전역옵션 지정
    % git config --global --unset {옵션명}  // 지정 전역옵션 삭제

2-3. log 살펴보기

  % git log -n{숫자}     // 숫자 만큼의 최신 커밋만 반환
  % git log --oneline   // 간단히 커밋 해시와 제목만 반환
  % git log --oneline --graph --decorate        // --graph는 브랜치 흐름 표시, --decorate는 브램치 태그 참조 표시
  % git log --oneline --graph --all --decorate  // 모든 브랜치를 보고 싶을 때 사용하는 명령

💫Tip) 커밋히스토리에 보이는 앞의 16진수 7자리 숫자는 커밋 체크섬 혹은 커밋 아이디

2-4. 원격 저장소 명령

  % git remote add {원격 저장소이름} {원격저장소주소}   // 원격 저장소 등록 시 사용  
  % git remote -v   // 원격저장소 목록 반환
  % git clone {저장소주소} {새로운폴더명}  // 저장소 복제, 폴더명 생략하면 프로젝트 이름으로 폴더 생성,

2-5. Git 기타 명령어

  % git fetch {원격저장소별명} {브랜치이름} // 원격저장소의 브랜치와 커밋들을 로컬 저장소와 동기화
  % git merge {브랜치이름}   // 지정한 브랜치의 커밋들을 현재 브랜치 및 워킹트리에 반영  
  % git switch {브램치이름}  // 브랜치 변경 (기존에 없는 브랜치인 경우 생성하면서 변경)
  % git restore {파일명}    // 변경사항 복원 (작업중인 파일을 기존 마지막 커밋상태로 되돌리기)

3. 브랜치

3-1. 브랜치 관련 명령어

  % git branch [-v]   //로컬 저장소 브랜치 목록 조회, [-v옵션 주면 마지막 커밋도 표시]
  % git branch [-f] {브랜치이름} {커밋체크섬} // 새로운 브랜치 생성, 커밋체크섬 값 없으면 HEAD*로 부터 브랜치 생성
  % git branch -r[v]  // 원격저장소에있는 브랜치를 보고싶을 때 사용 [-v옵션 주면 마지막 커밋도 표시]

  % git chechout {브랜치이름}              // 특정 브랜치로 체크아웃*할 때 사용
  % git checkout -b {브랜치이름} {커밋체크섬} // 특정 커밋에서 브랜치 새로 생성과 동시에 체크아웃

  % git merge <대상브랜치>   // 현재 브랜치와 대상 브랜치를 병합할 때 사용
  % git rebase <대상브랜치>   // 내 브랜치의 커밋들을 대상 브랜치에 재배치

  % git branch -d {브랜치이름} // 브랜치 삭제 (HEAD 브랜치나 병합되지 않은 브랜치는 삭제되지 않음)
  % git branch -D {브랜치이름} // 브랜치 강제 삭제

❓HEAD: 현재 작업중인 브랜치의 최근 커밋
❓체크아웃: 브랜치가 가르키는 커밋의 내용을 워킹트리에 반영

3-2. 원격 브랜치 가져오기

  % git remote update  // 원격 저장소 업데이트
  % git branch -r      // 원격 저장소 브랜치 확인
  % git checkout -t origin {원격 저장소 브랜치이름} 

3-3. 브랜치 되돌리기

  % git reset --hard {이동할커밋체크섬}   // 현재 브랜치를 지정한 커밋으로 옮기고 폴더 내용도 함께 변경
  % git reset --hard HEAD~{숫자}      // n번째 위쪽 조상으로 브랜치 되돌리기
  % git reset HEAD^                 //바로 이전 커밋으로 돌아감
  % git reset HEAD^2                    //병합 커밋처럼 부모가 둘 이상인 커밋에서 두번째부모 지칭
  % git revert {커밋체크섬}               //해당 커밋만 삭제하는 커밋을 생성 (최신커밋부터 취소하는 것이 좋음) 
  % git revert --no-commit {커밋체크섬}  // revert한 결과를 commit하지 않기 위한 옵션  이후 git commit -m "어떤 커밋을 왜 리버트했는지 메모" 한 뒤 git push 하는 것이 좋다.
  

4. 언제 브랜치를 쓰는가?

  1. 새로운 기능 추가 : master 브랜치에는 정상작동하는 버전만 저장, 기능 추가 시 브랜치 따로 파서 작업
  2. 버그 수정 : hotFix, bugFix 같은 브랜치를 따로 파서 수정
  3. 이전 코드 개선
  4. 특정 커밋으로 돌아가고 싶을 때

5. 배포 버전에 태깅하기

  % git tag -a -m {간단한 메세지} {태그이름} {브랜치 or체크섬}  // -a로 주석이 있는 태그 생성(브랜치, 체크섬 생략하면 HEAD에 태그 생성)
  % git push {원격저장소별명} {태그이름}                     //  원격 저장소에 태그 업로드

참고 : https://github.com/choiyun9yu/OperatingSystem/blob/main/Git.md


나중에 정리 1

미션 저장소 Fork 하기
간단하게 미션 저장소를 복사하는 과정입니다.
저장소 우측 상단의 'Fork' 를 눌러줍니다.
그러면 자신의 저장소에 새로운 저장소가 생깁니다.
우리는 이 저장소에 새로운 브랜치를 만들어 코딩하면 됩니다!

fork한 저장소 clone 하기
원격 저장소의 소스 코드를 본인 컴퓨터로 옮기는 과정입니다.
mac 기준 터미널에서 아래 명령어를 입력합니다.

git clone https://github.com/{본인 아이디}/{저장소 아이디}.git

제 경우엔 아래처럼 할 수 있습니다.
git clone https://github.com/junseoparkk/java-onboarding.git

새로운 브랜치 생성하기
fork한 저장소엔 아마 main 브랜치만 있을텐데, 자신의 브랜치를 만들고 이곳에 커밋을 해야 합니다.
저는 여기서부터 IntelliJ 터미널에 작성합니다.

git branch {브랜치명}
ex) git branch junseoparkk

그리고 해당 브랜치로 이동하기 위해선
git checkout {브랜치명}

명령어를 사용하시면 됩니다.

원격 저장소에 initial commit 하기
우선 main 브랜치가 아닌, 새로 만든 브랜치를 원격 저장소에 올려주어야 합니다.
(만약 다른 브랜치라면 새로 만든 브랜치로 이동해야 합니다.)

이 때 다음 명령어를 사용합니다.

git push origin {브랜치명}
ex) git push origin junseoparkk

add, commit, push
만약 코드를 작성하고 원격 저장소에 올리고 싶다? 아래 순서대로 명령어를 입력하시면 됩니다.

git add {파일명}

git commit -m "커밋 메시지"

git push [-u] origin {브랜치명}

자주 사용하는 명령어 정리
클론 :
git clone https://github.com/{본인 아이디}/{저장소 아이디}.git
푸시 :
git push origin {브랜치명}

브랜치 목록 (현재 브랜치는 *로 표시) :
git branch
브랜치 생성 :
git branch {브랜치명}
브랜치 삭제 :
git branch -d {브랜치명}
브랜치 이동 :
git checkout {브랜치명}

변경 파일을 모두 스테이징 영역에 추가 :
git add .
특정 파일을 스테이징 영역에 추가 :
git add {파일명}

커밋 :
git commit -m "커밋 메시지"
최근 커밋 메시지 수정 :
git commit --amend
커밋 로그 확인 :
git log

상태 확인 :
git status
변경 내용 확인 :
git diff


나중에 정리2

  • git remote -v
  • git show
  • git remote show origin
profile
Developer

0개의 댓글