Git의 마스터 분기와 동일하도록 파일 재설정

Ashok Chapagai 2023년9월13일
  1. Git에서 파일을 master 브랜치로 되돌리기
  2. Git에서 특정 커밋으로 파일 리셋하기
  3. 결론
Git의 마스터 분기와 동일하도록 파일 재설정

master 브랜치에 수정되지 않은 중요한 파일이 있는 상황을 가정해보세요. 그러나 이 파일은 이미 dev 브랜치에서 여러 번 수정되고 커밋되었습니다. 이제 해당 파일에서 발생한 모든 변경 사항을 버리고 master 브랜치와 같은 상태로 변경하고 싶습니다. 이 작업을 수월하게 수행할 수 있는 간단한 방법이 있습니다.

Git에서 파일을 master 브랜치로 되돌리기

Git에서 git checkout 명령은 브랜치 전환, 새로운 브랜치 생성, 파일 복원 등 다양한 작업에 사용되는 다재다능한 도구입니다.

파일을 master 브랜치로 복원하기 위해 git checkout을 사용하면 현재 브랜치의 파일 내용을 master 브랜치의 파일 내용으로 대체하는 것입니다.

Git checkout에 대한 기본적인 이해가 있다면, 특정 파일을 master 브랜치로 리셋하는 단계를 살펴보겠습니다.

단계 1: 터미널 열기

시작하기 위해 터미널이나 명령 프롬프트를 엽니다. 파일을 리셋하기 위해 Git 명령을 사용할 것이므로 터미널을 사용하는 것이 중요합니다.

단계 2: 저장소 디렉터리로 이동

cd 명령을 사용하여 Git 저장소 디렉터리로 이동합니다. 예를 들어:

cd /path/to/your/repo

/your/repo/경로를 실제 Git 저장소 경로로 대체하세요.

단계 3: 현재 브랜치 확인

리셋 작업을 수행하기 전에 파일을 리셋할 원하는 브랜치에 위치해 있는지 확인하세요. 다음 명령을 사용하여 현재 브랜치를 확인할 수 있습니다:

git branch

이 명령은 현재 체크아웃된 브랜치가 별표(*)로 표시되는 브랜치 목록을 표시합니다.

단계 4: Git Checkout 리셋 수행

이제 파일을 master 브랜치로 리셋하기 위해 git checkout 명령을 사용합니다. 다음 명령을 사용하세요:

git checkout master -- file1 file2 ...

file1, file2 등을 리셋하려는 파일의 이름으로 대체하세요. 여러 파일을 리셋하려면 파일 이름을 공백으로 구분하여 지정할 수 있습니다.

예를 들어, file1.txtfile2.txt라는 두 개의 파일을 리셋하려면 다음 명령을 사용합니다:

git checkout master -- file1.txt file2.txt

git checkout 명령에 대한 자세한 내용

  • git checkout: 브랜치 전환과 파일 리셋 등 다양한 작업에 사용되는 Git 명령입니다.
  • master: 파일을 가져올 소스 브랜치를 지정합니다. 이 경우 master 브랜치입니다.
  • --: 이 두 개의 하이픈은 브랜치 또는 커밋과 파일 경로를 구분하는 데 사용됩니다. Git에게 다음 항목이 브랜치나 커밋이 아닌 파일 경로라고 알려줍니다.

단계 5: 상태 확인

리셋 이후에는 작업 디렉토리의 상태를 확인하는 것이 좋습니다. 다음 명령을 사용하세요:

git status

이 명령은 master 브랜치와 비교하여 수정, 추가 또는 삭제된 파일을 보여줍니다.

단계 6: 변경 사항 커밋

변경 사항을 만족하고 커밋할 준비가 되었다면, 다음 명령을 사용하세요:

git add .
git commit -m "Your commit message"

"Your commit message"를 실제 변경 사항을 설명하는 의미있는 메시지로 대체하세요.

Git에서 특정 커밋으로 파일 리셋하기

Git에서 git reset 명령은 현재 브랜치를 특정 커밋과 같은 상태로 재설정하는 데 사용됩니다.

git reset을 사용하여 특정 커밋으로 파일을 리셋하면, Git에게 그 커밋으로 브랜치 포인터를 이동시키라는 지시를 하면서 작업 디렉토리와 스테이징 영역(인덱스)을 선택적으로 업데이트할 수도 있습니다.

Git에서 특정 커밋으로 파일을 리셋하는 단계를 알아보겠습니다.

단계 1: 터미널 열기

먼저 터미널이나 명령 프롬프트를 엽니다. Git 명령을 사용할 것이므로 터미널을 사용하는 것이 중요합니다.

단계 2: 저장소 디렉터리로 이동

cd 명령을 사용하여 Git 저장소의 디렉터리로 이동합니다. 예를 들어:

cd /path/to/your/repo

/your/repo/경로를 실제 Git 저장소 경로로 대체하세요.

단계 3: 대상 커밋 확인

파일을 리셋할 특정 커밋을 확인해야 합니다. git log를 사용하여 커밋 기록을 보고 커밋 해시를 찾을 수 있습니다. 예를 들어:

git log

이 명령은 커밋 기록을 표시하는데, 각 커밋은 고유한 해시(긴 알파벳과 숫자로 이루어진 문자열)로 식별됩니다.

단계 4: Git 리셋 수행

이제 git reset 명령을 사용하여 특정 커밋으로 파일을 리셋합니다. 기본 구문은 다음과 같습니다:

git reset <commit> -- <file1> <file2> ...

<commit>을 커밋 해시, 브랜치 이름 또는 태그 이름으로 바꾸세요. <file1>, <file2> 등을 복원하려는 파일의 이름으로 바꾸세요. 파일 이름을 공백으로 구분하여 여러 파일을 지정할 수 있습니다.

예를 들어, file1.txtfile2.txt라는 두 파일을 해시가 abc123인 커밋으로 복원하려면 다음 명령을 사용합니다:

git reset abc123 -- file1.txt file2.txt

git reset 명령어 살펴보기

  • git reset: 이는 브랜치와 파일을 초기화하는 데 사용되는 Git 명령어입니다.
  • <commit>: 이 자리 표시자를 복원하려는 커밋 해시, 브랜치 이름 또는 태그 이름으로 바꿉니다.
  • --: 이 이중 하이픈은 커밋과 파일 경로를 구분하는 데 사용됩니다. 이는 Git에게 다음 아이템이 브랜치나 커밋이 아닌 파일 경로임을 알려줍니다.

단계 5: 상태 확인

복원 후 작업 디렉토리의 상태를 확인하는 것이 중요합니다. 다음 명령을 사용하세요:

git status

이 명령은 리셋 커밋과 비교하여 수정된, 추가된 또는 삭제된 파일을 표시합니다.

단계 6: 변경 내용 커밋하기

복원이 만족스럽고 커밋할 준비가 되었다면, 다음 명령을 사용하세요:

git add .
git commit -m "Your commit message"

"Your commit message"를 실제 변경 내용을 설명하는 의미 있는 메시지로 대체하세요.

대체 방법: git checkout 사용하기

같은 작업을 수행하는 대체 방법은 다음과 같습니다:

git checkout <commit_hash> <filename>

이것 역시 같은 결과를 얻는 데 도움이 됩니다.

결론

Git에서 master 브랜치로 파일을 복원하는 것은 협업 프로젝트를 진행하는 모든 개발자에게 필수적인 기술입니다.

git checkout 명령어를 사용하여 master 브랜치의 최신 변경 사항과 간편하게 작업을 동기화할 수 있습니다.

이 안내서에서 제시한 단계를 따라가면 특정 파일을 자신의 프로젝트 일관성과 최신 상태로 유지하여 자신감을 가질 수 있습니다.

Git은 특정 커밋으로 초기화하기 위해 git reset과 같은 다양한 메커니즘을 제공합니다.

각 방법에는 사용 사례가 있으므로 필요에 맞는 방법을 선택하세요.

실수를 수정하거나 master 브랜치로부터 변경 사항을 통합하는 경우, Git의 유연성은 버전 관리 워크플로우를 효율적이고 신뢰할 수 있게 유지합니다.

Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub

관련 문장 - Git Reset