커밋을 사용하여 작업 저장

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Git은 리포지토리에서 파일을 수정할 때 스냅샷 작업을 자동으로 수행하지 않습니다. 특정 변경 내용을 준비하여 스냅샷 캡처하려는 파일 변경 내용을 Git에 알립니다. 스테이징 후 커밋을 만들어 스냅샷 저장합니다.

이 문서에서는 다음 작업에 대한 절차를 제공합니다.

  • Git에서 변경 내용을 추적하는 방법
  • 커밋에 있는 내용
  • 변경 내용을 스테이징하는 방법
  • 커밋을 만드는 방법
  • 마지막 커밋을 업데이트하는 방법

Git 워크플로에 대한 개요는 Azure Repos Git 자습서를 참조하세요.

Git에서 변경 내용을 추적하는 방법

리포지토리에서 작업할 때 Git은 추적된 모든 파일에 대한 변경 내용을 추적합니다. 추적된 파일은 현재 준비되었거나 이전 커밋에 포함된 파일입니다. Git은 추적된 파일을 세 가지 범주로 구분합니다.

  • 수정되지 않은 파일 - 마지막 커밋 이후 변경되지 않은 파일입니다.
  • 수정된 파일 - 마지막 커밋 이후 변경했지만 다음 커밋을 위해 준비되지 않은 파일입니다.
  • 스테이징된 파일 - 마지막 커밋 이후 변경하고 다음 커밋을 위해 준비한 파일입니다.

세 상태 사이의 리포지토리에 있는 파일의 수명 주기를 보여 주는 스크린샷

커밋을 만들 때 스테이징된 파일 및 수정되지 않은 파일만 스냅샷 사용됩니다. 수정된 파일에 대한 스테이징되지 않은 변경 내용은 유지되지만 스냅샷 해당 파일의 수정되지 않은 버전이 포함됩니다. Git은 새 파일의 변경 내용을 추적하거나 스테이징할 때까지 스냅샷 새 파일을 포함하지 않습니다.

커밋은 로컬 Git 리포지토리에 만들어집니다. 각 커밋은 완벽할 필요는 없으며 의도한 변경을 수행하기 위해 여러 커밋이 걸릴 수 있습니다. 작업할 때 커밋을 만들고 완료되면 커밋을 원격 리포지토리로 푸시하여 작업을 다른 사용자와 공유할 수 있습니다.

커밋에 있는 내용

커밋 에는 다음 정보가 포함됩니다.

  • 커밋 시 리포지토리에 있는 추적된 모든 파일의 스냅샷. Git은 스냅샷 사용하여 차이를 계산하지만 스냅샷 커밋 간의 차이는 아닙니다. 스냅샷을 사용하면 분기 간에 빠르게 전환할 수 있으며 분기 병합을 지원합니다.
  • 상위 커밋에 대한 참조. 대부분의 커밋에는 하나의 부모가 있지만 분기 병합 후의 다음 커밋에는 여러 부모가 있고 리포지토리의 첫 번째 커밋에는 아무 것도 없습니다.
  • 커밋의 변경 내용을 설명하는 메시지입니다. 커밋을 만들 때 메시지를 입력합니다.

Git은 각 커밋의 스냅샷 및 부모 참조를 사용하여 리포지토리에서 개발의 전체 레코드를 기본. 코드의 변경 내용을 조사하려면 리포지토리의 Git 기록을 검토할 수 있습니다.

변경 내용을 스테이징하는 방법

커밋에 대한 스냅샷 만들려면 다음을 수행합니다.

  • 새 파일을 준비하여 Git에서 스냅샷 추가하려는 경우 Git에서 해당 파일의 변경 내용을 추적할 수 있도록 합니다.
  • 편집된 파일을 준비하여 수정되지 않은 파일 버전이 아닌 스냅샷 수정된 파일 버전을 Git에 알립니다.
  • 삭제된 파일을 스테이징하여 스냅샷 제거하여 더 이상 추적하지 않도록 Git에 알릴 수 있습니다.

스냅샷 임시 파일, 로그 파일 또는 기타 파일을 제외하려면 특정 파일을 무시하도록 Git을 구성할 수 있습니다.

참고 항목

Git은 편집된 파일의 대화형 스테이징을 지원하므로 파일 내에서 특정 변경 내용을 스테이징하도록 선택할 수 있습니다. 이 기능은 다른 커밋에서 다른 파일을 편집하려는 경우에 유용합니다.

Visual Studio 2022는 Git 메뉴, Git 변경 내용 및 솔루션 탐색기 상황에 맞는 메뉴를 사용하여 Git 버전 제어 환경을 제공합니다. Visual Studio 2019 버전 16.8은 팀 탐색기 Git 사용자 인터페이스도 제공합니다. 자세한 내용은 Visual Studio 2019 - 팀 탐색기 탭을 참조하세요.

Git 변경 내용 창의 변경 내용 섹션에서 파일을 마우스 오른쪽 단추로 클릭하고 스테이지를 선택하여 스테이징된 변경 내용 섹션에 추가합니다.

Visual Studio의 'Git 변경 내용' 창에 있는 변경 내용 옵션의 스크린샷

또는 파일 옆에 있는 더하기 기호를 선택하여 변경된 파일을 준비할 수 있습니다. 변경된 모든 파일을 폴더에 스테이징하려면 폴더 옆에 있는 더하기 기호를 선택합니다. 리포지토리에서 변경된 모든 파일을 스테이징하려면 변경 내용 섹션의 오른쪽 위 모서리에 있는 더하기 기호를 선택합니다.

파일을 마우스 오른쪽 단추로 클릭하고 이 로컬 항목 무시 또는 이 확장 무시를 선택하여 파일을 무시하도록 Git에 지시할 수 있습니다. 두 명령 중 하나가 없는 경우 리포지토리에 .gitignore 파일을 만들고 해당 파일에 항목을 추가합니다. 무시된 파일은 Visual Studio의 변경 내용 섹션에 표시되지 않습니다. 그러나 .gitignore 파일은 추적된 파일에 영향을 주지 않습니다. 추적된 파일을 무시하도록 Git을 구성하는 방법에 대한 자세한 내용은 파일 무시를 참조하세요. 시간을 절약하기 위해 GitHub gitignore 리포지토리에서 다양한 개발 환경에 대한 .gitignore 템플릿을 다운로드할 수 있습니다.

참고 항목

Visual Studio 2022 버전 17.3부터 Visual Studio는 파일 내에서 부분 변경 내용을 준비할 수 있습니다. 자세한 내용은 Visual Studio의 코드 단계 줄을 참조 하세요.

커밋을 만드는 방법

Git 변경 내용 창에서 스테이징된 변경 내용을 설명하는 메시지를 입력한 다음 스테이징 커밋을 선택합니다.

Visual Studio의 커밋 정보 링크를 보여 주는 스크린샷

커밋 세부 정보에 대한 커밋 링크를 선택합니다.

Visual Studio의 'Git 변경 내용' 창을 연결하는 커밋 세부 정보를 보여 주는 스크린샷.

참고 항목

모든 변경 내용이 준비되지 않은 경우 스테이징을 건너뛰고 모두 커밋을 선택하여 직접 커밋할 수 있습니다.

Visual Studio의 'Git 변경 내용' 창에 있는 '모두 커밋' 옵션의 스크린샷

마지막 커밋을 업데이트하는 방법

Git은 스테이징된 파일 또는 마지막 커밋의 메시지 변경을 지원합니다. 이 작업은 마지막 커밋을 두 커밋의 스테이징된 파일을 결합하고 새 커밋 메시지 사용하는 새 커밋으로 바꿉니다. 커밋 수정은 파일을 스테이징하는 것을 잊거나 마지막 커밋 메시지 오타가 있는 경우에 유용합니다.

Warning

원격 리포지토리와 동기화 문제가 발생하므로 이미 푸시된 커밋을 수정하지 마세요. 푸시된 커밋의 경우 다음 전략 중 하나를 사용합니다.

Git 변경 내용 창에서 필요에 따라 하나 이상의 파일을 스테이징하고, 커밋 메시지 입력하고, 수정을 선택한 다음, 스테이징된 커밋을 선택합니다.

Visual Studio의 'Git 변경 내용' 창에서 '이전 커밋 수정' 옵션을 보여 주는 스크린샷

Git 변경 내용 창은 커밋 메시지, 스테이징된 파일 또는 둘 다 수정을 지원합니다. 수정을 선택하면 이전 커밋의 식별자 SHA가 표시됩니다.

다음 단계