버전 제어를 사용하는 경우 팀과 코드 버전을 저장하고 공유하는 것이 가장 일반적입니다. Git에는 이러한 작업에 대한 쉬운 3단계 워크플로가 있습니다.
- 작업할 새 분기 만들기
- 변경 내용 커밋
- 브랜치를 푸시하여 팀과 공유하세요.
Git을 사용하면 분기를 사용하여 작업을 쉽게 관리할 수 있습니다. 모든 버그픽스, 새 기능, 추가된 테스트 및 업데이트된 구성은 새 분기로 시작합니다. 분기는 개발 머신에 가볍고 로컬이므로 분기를 푸시할 때까지 리소스를 사용하거나 다른 사용자와 변경 내용을 조정하는 것에 대해 걱정할 필요가 없습니다.
분기를 사용하면 다른 개발 변경 사항과 분리하여 코딩할 수 있습니다. 모든 것이 작동하면 브랜치 및 변경 내용이 팀과 공유됩니다. 다른 사용자는 자체 분기에서 진행 중인 작업에 영향을 주지 않고 분기의 자체 복사본에서 코드를 실험할 수 있습니다.
브랜치 생성
새 작업을 시작할 때와 같이 main현재 분기의 코드를 기반으로 분기를 만듭니다. 새 브랜치를 만들기 전에 git status를 사용하여 선택된 브랜치를 확인하는 것이 좋습니다.
다음 git branch 명령을 사용하여 Git에 브랜치를 만드세요.
> git branch <branchname>
리포지토리의 분기를 전환하는 명령은 git checkout 입니다. 분기를 만든 후, 변경 내용을 저장하기 전에 해당 분기로 전환하세요.
> git checkout <branchname>
Git에는 브랜치를 생성하고 동시에 전환할 수 있는 단축 명령어가 있습니다.
> git checkout -b <branchname>
GitHub 또는 Azure DevOps에서 Git 분기를 사용하는 방법에 대해 자세히 알아봅니다.
변경 내용 저장
Git은 편집이 이루어지기 때문에 코드를 자동으로 스냅샷하지 않습니다. Git은 다음 스냅샷에 추가할 변경 내용을 정확히 알려주어야 합니다. 이를 스테이징이라고 합니다. 변경 내용을 준비한 후 커밋 을 만들어 스냅샷을 영구적으로 저장합니다.
스테이지 변경
Git은 리포지토리에서 수행된 파일 변경 내용을 추적합니다. 이러한 변경 내용은 다음 세 가지 범주로 구분됩니다.
- 수정되지 않은 파일 은 마지막 커밋 이후 변경되지 않았습니다.
- 수정된 파일 은 마지막 커밋 이후 변경되었지만 다음 커밋을 위해 준비되지 않았습니다.
- 스테이징된 파일에 는 다음 커밋에 추가될 변경 내용이 있습니다.
커밋을 만들 때 스테이징된 변경 내용과 변경되지 않은 파일만 스냅샷에 사용됩니다. 스테이징되지 않은 변경 내용은 파일 시스템에 유지되지만 커밋은 스냅샷에서 수정되지 않은 파일을 사용합니다.
변경 내용 커밋
커밋을 만들어 Git의 변경 내용을 저장합니다. 각 커밋은 개별 파일 변경뿐만 아니라 각 커밋에 리포지토리의 전체 파일 콘텐츠를 저장합니다. 이 동작은 코드의 마지막 버전과 파일 수준 차이를 저장하는 다른 버전 제어 시스템과 다릅니다. 전체 파일 기록을 사용하면 변경 내용을 병합할 때 Git에서 더 나은 결정을 내릴 수 있으며 코드 분기 간을 빠르게 전환할 수 있습니다.
변경된 파일을 git add 추가하고, 파일을 git rm 제거하고, 파일을 git mv 이동하기 위해 변경 사항을 준비합니다. 그런 다음 명령을 사용하여 git commit 커밋을 만듭니다.
일반적으로 개발자는 리포지토리에서 변경된 모든 파일을 스테이징하려고 합니다.
> git add –all
그런 다음, 간단한 설명을 사용하여 변경 내용을 커밋합니다.
> git commit -m "Short description of changes."
모든 커밋에는 변경 내용을 설명하는 메시지가 있습니다. 커밋 메시지가 있으면 개발자가 커밋에서 변경한 내용을 기억할 수 있습니다. 또한 커밋 메시지가 있으면 다른 사용자가 커밋을 더 쉽게 검토할 수 있습니다.
Visual Studio 또는 Visual StudioCode에서 파일 준비 및 변경 내용 커밋에 대해 자세히 알아봅니다.
변경 내용 공유
팀에서 작업하든 자신의 코드를 백업하려고 하든 개발자는 다른 컴퓨터의 리포지토리와 커밋을 공유해야 합니다. 명령을 git push 사용하여 로컬 리포지토리에서 커밋을 가져와 원격 리포지토리에 씁니다. Git은 복제된 리포지토리에 설정되어 복제 소스(라고도 함 origin)에 연결합니다. 현재 분기의 로컬 커밋을 이 git push 리포지토리의 다른 분기(분기 이름)에 쓰려면 실행 합니다. Git은 원격 리포지토리에 브랜치 이름이 없으면 새로 생성합니다.
> git push origin
로컬 시스템에서 git init만든 리포지토리에서 작업하는 경우 변경 내용을 푸시하기 전에 팀의 Git 서버에 대한 연결을 설정해야 합니다.
Visual Studio 또는 Visual StudioCode에서 원격 설정 및 변경 내용 푸시에 대해 자세히 알아봅니다.
코드 브랜치 공유
로컬 분기를 팀의 공유 리포지토리에 푸시하면 나머지 팀에서 변경 내용에 액세스할 수 있습니다. 처음 git push을 실행할 때 -u 옵션을 추가하면 Git에 로컬 분기를 branchname으로부터 추적하기 시작하도록 origin 리포지토리에 지시합니다. 이 일회성 추적 정보 설정 후에는 팀 구성원이 직접 사용하여 git push 업데이트를 빠르고 쉽게 공유할 수 있습니다.
> git push origin <branchname>
다음 단계
GitHub 또는 Azure DevOps의 분기에 대해 자세히 알아봅니다.
Visual Studio 또는 Visual StudioCode에서 커밋 및 분기 푸시에 대해 자세히 알아봅니다.