git 명령어 정리

About_work·2024년 4월 27일
0

git

목록 보기
2/6

1. 로컬엔 없고, 서버에만 있는 branch로 이동하기

1. 원격 저장소 정보 업데이트

먼저, 로컬의 원격 브랜치 목록을 최신 상태로 업데이트합니다. 이것은 로컬 시스템에서 원격 저장소의 최신 변경 사항을 반영하도록 합니다.

git fetch

이 명령은 모든 원격 브랜치와 태그를 업데이트하지만, 현재 작업 중인 브랜치의 파일은 변경하지 않습니다.

2. 원격 브랜치 목록 확인

다음으로, 사용 가능한 모든 원격 브랜치를 확인합니다. 원하는 브랜치가 있는지 확인합니다.

git branch -r

3. 원격 브랜치로 체크아웃

원하는 원격 브랜치가 확인되면, 다음과 같이 그 브랜치로 체크아웃합니다. 이 명령은 해당 원격 브랜치를 기반으로 새로운 로컬 브랜치를 만들고, 그 브랜치로 이동합니다.

git checkout -b <new-local-branch-name> origin/<remote-branch-name>

여기서 <new-local-branch-name>은 로컬에서 사용할 새 브랜치의 이름이고, <remote-branch-name>은 체크아웃하려는 원격 브랜치의 이름입니다.

예를 들어, 원격 브랜치 이름이 feature-xyz이고, 같은 이름의 로컬 브랜치를 생성하고 싶다면, 다음과 같이 입력합니다:

git checkout -b feature-xyz origin/feature-xyz

2. 로컬에 있는 브랜치로 전환하기

Git에서 로컬에 이미 있는 다른 브랜치로 이동하는 것은 매우 간단합니다. 다음 명령을 사용하여 원하는 브랜치로 전환할 수 있습니다:

1. 브랜치 목록 확인

먼저 현재 로컬에 어떤 브랜치들이 있는지 확인합니다. 이는 다음 명령어로 할 수 있습니다:

git branch

이 명령은 로컬 브랜치의 목록을 보여주고, 현재 체크아웃된 브랜치 앞에는 별표(*)가 표시됩니다.

2. 브랜치로 이동

원하는 브랜치로 이동하려면 git checkout 명령을 사용합니다. 예를 들어, feature라는 브랜치로 이동하고 싶다면 다음과 같이 입력합니다:

git checkout feature

이 명령은 feature 브랜치로 전환하고, 해당 브랜치의 최신 커밋으로 작업 디렉토리를 업데이트합니다.

3. 브랜치 전환 확인

브랜치를 전환한 후에는 다음 명령어로 현재 브랜치를 확인할 수 있습니다:

git branch

이 명령을 실행하면 현재 체크아웃된 브랜치 앞에 별표(*)가 표시되어 확인할 수 있습니다.

추가 팁: git switch 명령 사용

  • Git 2.23 이상에서는 브랜치를 전환하는 데 git checkout 대신 git switch 명령을 사용할 수 있습니다. 이 명령은 브랜치를 전환하는 목적에 더 특화되어 있습니다:
git switch feature

git switch는 브랜치 전환을 보다 명확하게 하기 위해 도입되었으며, checkout 명령보다 사용하기 쉽고 직관적인 인터페이스를 제공합니다.

브랜치 전환 시 주의사항

  • 브랜치를 전환하기 전에 현재 브랜치에서 변경된 내용이 있다면, 이를 커밋하거나 스테이징 하지 않은 변경 사항을 임시 저장해야 합니다. 이는 다음과 같이 할 수 있습니다:
  1. 변경 사항을 커밋:

    git add .
    git commit -m "Describe your changes"
  2. 스태시를 사용하여 임시 저장:

    git stash

로컬 브랜치 삭제 방법

  • git branch -d <branch-name>

로그

  • 아래 로그는 git checkout 명령어를 사용하여 원격 저장소의 origin/feature/all 브랜치를 체크아웃했을 때 나타나는 메시지입니다.
  • 이 로그의 내용을 통해 현재 'detached HEAD' 상태에 있다는 것을 알 수 있습니다. 이 상태에 대해 자세히 설명드리겠습니다.

Detached HEAD 상태란?

  • Detached HEAD 상태는 Git에서 특정 커밋에 직접 체크아웃했을 때 발생합니다.
  • 보통은 브랜치 이름을 사용하여 체크아웃하지만, 여기서는 특정 브랜치의 최신 커밋으로 직접 체크아웃하였기 때문에 이 상태가 발생합니다.
  • 이 상태에서는 어떠한 브랜치에도 속하지 않으므로, 임시로 작업을 할 수 있지만, 그 변경사항들이 특정 브랜치에 속하지 않게 됩니다.

Detached HEAD 상태에서 할 수 있는 작업:

  1. 탐색과 실험: 이 상태에서 코드를 자유롭게 탐색하고 변경할 수 있습니다. 이는 코드의 이전 상태를 조사하거나 실험적인 변경을 시도해보고 싶을 때 유용합니다.

  2. 커밋: 변경 사항에 대해 커밋을 생성할 수 있습니다. 하지만, 이 커밋들은 현재 어떠한 브랜치에도 속하지 않기 때문에, 나중에 다른 브랜치로 전환하면 이 커밋들에 대한 참조를 잃게 됩니다.

Detached HEAD 상태에서 벗어나는 방법:

  1. 새 브랜치 생성:

    • 변경사항을 보존하고 싶다면, git switch -c <new-branch-name> 명령을 사용하여 새로운 브랜치를 생성하고 그곳으로 이동할 수 있습니다. 이렇게 하면 현재의 HEAD 상태에서 시작하는 새 브랜치가 만들어집니다.
  2. 기존 브랜치로 전환:

    • 만약 실험적 변경을 유지할 필요가 없다면, git switch - 또는 git checkout <branch-name>을 사용하여 기존의 브랜치로 돌아갈 수 있습니다.
profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글