GitHub

깃허브 사용

윤밥밥 2023. 11. 24. 23:08

자주 사용하는 깃허브 명령어를 정리해봤다.

git init

  • 폴더를 생성하고 그 폴더 안에서 git init을 하면 이 폴더는 깃저장소가 된다.git clone 사용자명@호스트:/원격/저장소/경로
  • 원격 저장소 복사

git remote -v

  • 원격 저장소 가져왔는 지 확인
  • 커밋(commit)
  • Git에서 commit이란, 프로젝트의 현재 상태를 나타내는 체크포인트 또는 스냅샷으로 생각할 수 있다.git status
  • 깃으로 현재 작업중인 상태나, 파일 추가 여부를 확인할 수 있다.Staging Area
  • 단순한 파일이고 곧 커밋할 파일에 대한 정보를 저장한다.git add 파일명
  • git add를 통해 파일을 staging Area에 넣을 수 있다.
  • 예시
    • git add
      • 한번에 추가
    • git add hello1.py hello2.pygit commit -m "Commit message"
  • staging area에 올린 파일들에 대한 커밋 메세지 작성

git push origin master

  • 커밋한 내용을 원격 서버로 올리기
  • git log
  • 모든 커밋 내역을 볼 수 있다.git checkout <commit-hash>
  • 특정시점으로 커밋을 되돌릴 수 있다.
  • 즉 가리키는 포인트를 바꾸며 코드도 이때로 돌아간다.
  • 다만 그렇다고 그 이후의 커밋이 사라지는 것은 아니다.
  • <commit-hash>는 git log치면 나온다.Ignoring files
  • staging area에 추가하고 싶지 않거나, git에서 관리하지 않아도 되는 파일이 있다면 .gitignore 파일을 프로젝트 폴더에 생성해주면 된다.브랜치(Branch)
  • 동일한 소스코드를 공유하면서 서로 다른 작업을 할 때 사용
  • git checkout -b 이름
    • checkout을 하는 데 없으면 생성
  • git branch 이름
    • 브랜치 생성
  • git checkout 이름
    • 이름으로 브랜치 변경
  • git push origin <가지 이름>
    • 생성한 가지 원격저장소로 올리기.
  • git switch 이름
    • checkout기능을 분리한 것
  • git merge 이름
    • git switch로 주 브랜치가 될 곳으로 이동하고
    • 주 브랜치에 합치고 싶은 브랜치 이름을 넣어준다.
      • 만약 중복된 부분이 있다면 두 코드중 하나는 지워야 한다.
    • 이 때까지 step은 기존의 자신이 했던 커밋을 가리키고 있다. 아래를 통해 같은 곳을 바라보도록 하자.
      • git switch step
      • git merge 주브랜치이름
  • git rebase 이름
    • A브랜치를 B브랜치 위로 올리고 싶을 때
    • git switch A
    • git rebase B
      • B 부모로 A가 이동한다.
    • git switch B
    • git rebase A
      • B가 부모 끝을 가리키게 된다.
    • 단점
      • A가 B위로 올라가면서 기록(History)이 지워진다.
  • 헤드
    • git switch HEAD^
    • ^는 carot이라고 한다.
    • 헤드가 한칸 뒤로 간다. ^붙인 만큼 뒤로 돌아간다
    • ~(tilde)숫자
      • git switch HEAD~3
      •  
      • 틸드 뒤에 숫자를 붙이면 숫자만큼 뒤로간다.
  • git reset HEAD~1
    • 내 로컬 작업되돌리기
    • 그럼 커밋하나가 완전히 지워진다.
  • git reset --hard 삭제전의 커밋해쉬값
    • 삭제한 거 되돌리기
    • git reflog
      • 모든 로그를 볼 수 있다
      • 해쉬 값도 나온다.
    • 제거를 해도 해쉬 값은 남아 있고 이로 reset시키면된다.
  • git switch -c 새브랜치명 삭제된브랜치의 커밋해쉬값
    • 삭제된 브랜치 되돌리기
  • git revert HEAD
    • 커밋을 삭제하지 않고 새로 추가하면서 되돌린다.
  • git cherry-pick
  • git fetch origin 브랜치이
    • git pull이란 원격 저장소의 정보를 가져오면서 자동으로 로컬 브랜치에 병합(Merge)까지 수행해주는 명령어이다.
  • git pull origin 브랜치이름
    • 원격 저장소의 커밋들을 로컬 저장소로 가져온다. 그리고 자동으로 병합(Merge)를 해주지 않기 때문에 본인이 직접 확인을 한 후에 병합(Merge)하는 과정을 거쳐야한다.