Git - 원격 저장소 관리

Weed·2024년 2월 24일
0

Git - Remote

  • git-remote-Manage set of tracked repositoyu
  • Adds a remote name <name> for the repository at <url>
$ git remote add <name> <url>
$ git remote add origin https://github.com/username/repo.git
  • 원격 저장소
    • 원격 저장소 목록 보기
$ git remote -v
$ git remote --verbose
  • 원격 저장소 갱신
$ git remote update
$ git remote prune origin
$ git fetch --prune
  • 원격에서 삭제된 브랜치 업데이트
$ git remote prune origin
$ git remote update --prune
  • 원격 저장소 브랜치 확인
$ git branch -r
$ git branch --remotes
  • 원격과 로컬의 브랜치 확인
$ git branch -a
$ git branch -all
  • 원격 저장소의 브랜치 가져오기

    • 가져온 후에 동일한 이름으로 브랜치를 생성하고 체크아웃
    $ git checkout -t origin/master
    • 가져온 후에 이름을 변경하여 브랜치를 생성하고 체크아웃
    $ git checkout -b master2 origin/master
  • 원격 저장소의 브랜치 확인하기

    • 로컬에 받아서 확인해보고 테스트해볼 수 있지만 커밋, 푸시할 수 없으며 체크아웃하면 사라짐
    $ git checkout origin/master

Git - Pull

  • Pull
    • 원격 저장소의 내용을 로컬 저장소에 갱신
    • 원격 저장소의 변경 내용을 로컬 작업 영역으로 내려(fetch) 받은 후 병합 (merge)
    $ git pull
    $ git pull origin master
    $ git pull --rebase origin master
    # 충돌이 발생하면 수정 후 (git add 또는 git rm)
    $ git rebase --continue
    또는
    $ git rebase --abort
    • 리모트로부터 가져온 커밋 뒤에 새로운 커밋을 추가
    $ git pull --rebase=preserve origin master

Git - push

  • push: 로컬 저장소의 변경 내용을 원격 저장소로 보냄

    • 원격 저장소의 업스트림 브랜치 지정하기 (한 번 설정하면 그 다음부터는 할 필요 x)
    $ git push --set-upstream origin master
    • 원격 브랜치로 전송
    $ git push origin master
    • 새로운 브랜치를 원격에 전송 (원격저장소에 새로운 브랜치가 만들어지고 반영 됨)
    $ git checkout -b master2
    $ git push origin master2
    $ git push origin HEAD : master
    # Origin: 원격 저장소의 별칭
    # HEAD: 전송할 최종 커밋
    # master: 원격 저장소의 branch 이름
    • 강제 푸시 (Force Push)
    $ git push --force origin HEAD : master
    $ git push origin +HEAD : master
    • 원격 브랜치 삭제
    $ git push -delete origin feature
    $ git push [remotename] [:branch]
    $ git push origin :master2
    $ git push [remotename] [localbranch] [:remotebranch]
    • 충돌이 나면 pushg하지 않음
    $ git push --force-with-lease origin master

Git - fetch

  • fetch

    • 원격 저장소의 내용을 로컬 저장소에 내려받음
    $ git fetch origin
    • 원격 저장소의 데이터를 가져온 후 병합
    $ git fetch origin master
    $ git merge origin/master
    • 원격 저장소의 데이터를 가져온 후 로컬의 브랜치가 원격의 이력을 가지도록 변경
    • 로컬에 있는 모든 변경 내용과 확정본을 포기
    $ git fetch origin master
    $ git reset --hard origin/master

Git - 원격 저장소 관리

  • 원격 저장소 관리

    • 원격 저장소 살펴보기
    $ git remote show [remotename]
    $ git remote show origin
    • 원격 저장소 이름 변경
    $ git remote rename [대상 이름] [새로운 이름]
    $ git remote rename origin origin2
    • 원격 저장소 삭제
    $ git remote rm [remotename]
    $ git remote rm origin

Git -stash

  • 커밋하지 않고 나중에 다시 돌아와서 작업을 수행할 때 현재 상태를 저장

  • Stashc 명령은 워킹 디렉토리에서 수정한 파일만 저장

  • Stash는 Modified이면서 Tracked 상태인 파일과 Staging Area에 있는 파일을 보관해 두는 장소

  • 아직 끝나지 않은 수정사항을 스택(Stack)에 잠시 저장했다가 나중에 다시 작업을 수행

  • 목록 보기

    • git stash list
  • 현재 작업 저장

    • 현재 작업을 저장하고 브랜치를 HEAD로 이동 (git reset --hard)
    • git stash save
  • 저장된 작업 꺼내기

    • 가장 최근에 save한 stash가 현재 브랜치에 적용됨
    • 꺼낸 작업은 list에서 삭제됨
      • git stash pop
    • 가장 최근에 save한 stash가 현재 브랜치에 적용됨
    • stash pop과 비슷하지만 list에서 삭제되니 않고 남아 있음
      • git stash apply
      • git stash apply stash@{0}
  • 저장된 작업 삭제

    • stash가 현재 브랜치에 적용됨
    • 꺼낸 작업은 list에서 삭제됨
      $ git stash drop
      $ git stash drop stash@{0}
    • 전체 리스트 삭제
      $ git stash clear
profile
개발자로 전직해보자

0개의 댓글