Git 패널로 소스 제어 관리 - AWS Cloud9

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Git 패널로 소스 제어 관리

AWS Cloud9의 Git 패널 확장은 코어 및 고급 Git 명령에 대한 편리한 사용자 인터페이스 액세스를 제공합니다.

이 섹션에서는 소스 제어를 관리하기 위한 주요 Git 기능에 액세스하는 방법을 보여 줍니다. 이 절차에서는 Git 패널 메뉴를 사용하여 리포지토리와 그 콘텐츠에 대해 Git 명령을 실행하는 데 중점을 둡니다.

Git 리포지토리를 초기화하고 복제하기 위한 인터페이스 옵션

Git 패널 검색 상자에 이름을 입력하기 시작하여 지원되는 모든 Git 명령에 액세스 할 수도 있습니다.

Git 리포지토리를 초기화하고 복제하기 위한 인터페이스 옵션

또한 Git 패널 인터페이스와 상호 작용할 때 실행되는 실제 Git 명령을 볼 수 있습니다. 명령줄 작업을 보려면 Git 패널 메뉴로 이동하여 [Git 출력 표시(Show Git Output)]를 선택합니다.

Git 명령 출력 보기

Git 리포지토리 초기화 또는 복제

Git 리포지토리(‘repo’)는 처음부터 프로젝트의 전체 기록을 포함합니다. 리포지토리는 스테이징된 파일을 repo로 커밋할 때마다 캡처된 프로젝트 콘텐츠의 모든 스냅샷으로 구성됩니다.

Git 패널은 Git 리포지토리를 얻는 두 가지 방법을 지원합니다.

  • 기존 디렉터리를 Git 리포지토리로 초기화합니다.

  • 기존 리포지토리를 복제하고 로컬 디렉터리에 복사합니다.

Git 리포지토리를 초기화하고 복제하기 위한 인터페이스 옵션
참고

리포지토리를 초기화하거나 복제하기 위한 인터페이스 옵션은 환경의 WorkSpace 폴더에 Git 리포지토리가 아직 추가되지 않은 경우에만 사용할 수 있습니다. 리포지토리에 대한 작업 디렉터리가 이미 있는 경우 Git 패널 창에 작업 디렉터리 및 준비 영역의 상태가 표시됩니다. Git 패널 메뉴를 사용하여 리포지토리에 대해 실행할 수 있는 Git 명령에 액세스할 수도 있습니다.

리포지토리를 초기화거나 복제하려면

  1. Git 패널을 아직 사용할 수 없는 경우 [Window], [소스 제어(Source Control)]를 선택한 다음 Git 아이콘을 선택하여 액세스합니다.

    참고

    Ctrl+Shift+G라는 키보드 바로 가기를 사용하여 Git 패널을 열 수도 있습니다.

  2. 새 리포지토리를 초기화할지 아니면 기존 리포지토리를 복제할지를 선택합니다.

    Initialize a repository
    • Git 패널에서 [리포지토리 초기화(Initialize Repository)]를 선택합니다.

    • 그런 다음 Git 리포지토리가 초기화될 WorkSpace 폴더를 선택합니다. 폴더 경로를 입력하거나, 경로를 선택하거나, 대화 상자에서 폴더를 선택할 수 있습니다.

    • 대화 상자를 사용하는 경우 대상 폴더를 선택하고 [리포지토리 초기화(Initialize Repository)]를 선택합니다.

    Git 리포지토리의 WorkSpace 폴더 선택

    선택한 폴더에서 Git 리포지토리를 초기화하고 나면, Git 패널에 해당 폴더에 있는 모든 파일이 추적되지 않는 상태이며 Git 준비 영역에 추가할 준비가 된 상태로 표시됩니다.

    Git 리포지토리의 WorkSpace 폴더 선택
    Clone a repository
    • Git 패널 창에서 [리포지토리 복제(Clone Repository)]를 선택합니다.

    • 다음으로 복제할 원격 리포지토리의 URL을 입력하고(예: GitHub에서 호스팅되는 리포지토리를 복제하려면 https://github.com/my-own-repo/my-repo-project-name.git 입력) Return 키를 누릅니다.

    • 표시되는 대화 상자에서, 복제된 리포지토리의 WorkSpace 폴더를 선택하고 [리포지토리 위치 선택(Select Repository Location)]을 선택합니다.

    참고

    외부 사이트(예: GitHub)에서 호스팅되는 리포지토리에 액세스하는 경우 프로세스를 완료하려면 해당 사이트의 로그인 보안 인증 정보도 입력해야 합니다.

    선택한 폴더에서 원격 리포지토리를 복제한 후에는 git pull 명령을 실행하여 로컬 리포지토리를 원격 리포지토리의 최신 변경 사항과 동기화할 수 있습니다. 자세한 내용은 원격 리포지토리 작업 섹션을 참조하세요.

파일 스테이징 및 커밋

Git 리포지토리를 얻은 후에는 다음 두 단계 프로세스를 사용하여 콘텐츠로 채울 수 있습니다.

  1. 추적되지 않거나 최근에 수정한 콘텐츠를 준비 영역에 추가합니다.

  2. 준비 영역의 파일을 작업 디렉터리에 커밋합니다.

중요

작업 디렉터리의 모든 파일을 리포지토리에 커밋하지는 않으려는 경우도 있습니다. 예를 들어 런타임 중에 생성된 파일을 프로젝트의 리포지토리에 추가해서는 안 될 것입니다. Git 패널을 사용하면 파일을 .gitignore 파일의 목록에 추가하여 무시하도록 수 표시할 수 있습니다.

.gitignore의 목록을 업데이트하려면 준비 영역에 추가되지 않은 파일을 마우스 오른쪽 버튼으로 클릭하고 [.gitignore에 파일 추가(Add File to .gitignore)]를 선택합니다. IDE가 .gitignore 파일을 열고 선택한 파일의 이름이 무시된 파일 목록에 추가됩니다.

.gitignore에서 패턴 매칭을 사용하여 파일 형식을 제외하는 방법에 대한 자세한 내용은 관련 git-scm.com 사이트를 참조하세요.

Stage files

준비 영역에 추가되지 않는 파일(레이블이 ‘U’인 파일)과 수정된 파일(레이블이 ‘M’인 파일)은 Git 패널 창의 Changes(변경 사항) 아래에 나열됩니다.

git 리포지토리의 WorkSpace 폴더에 있는 추적되지 않는 콘텐츠

Git 패널 인터페이스를 사용하여 특정 파일 또는 추적되지 않고 수정된 모든 파일을 준비 영역에 추가할 수 있습니다.

  • 특정 파일: 파일을 일시 중지한 다음 +를 선택하여 준비 영역에 추가합니다. 또는 파일을 마우스 오른쪽 버튼으로 클릭하고 [변경 사항 스테이징(Stage Changes)]을 선택합니다.

  • 모든 파일: Git 패널 메뉴를 클릭하고 [모든 변경 사항 스테이징(Stage All Changes)]을 선택합니다.

리포지토리의 인덱스에 추가된 파일은 [스테이징된 변경 사항(Staged Changes)]에 나열됩니다. 이전에 추적되지 않은 파일에는 ‘A’라는 레이블이 표시되어 스테이징되었음을 나타냅니다.

git 리포지토리의 WorkSpace 폴더에 있는 스테이징된 콘텐츠
참고

특정 변경 사항 또는 모든 변경 사항을 언스테이징할 수도 있습니다. 단일 파일의 경우 파일을 일시 중지한 다음 -를 선택합니다. 또는 파일을 마우스 오른쪽 버튼으로 클릭하고 [변경 사항 언스테이징(Unstage Changes)]을 선택합니다. 모든 변경 내용을 언스테이징하려면 Git 패널 메뉴로 이동하여 [모든 변경 사항 언스테이징(Unstage All Changes)]을 선택합니다.

Commit files

Git의 commit 명령을 사용하여 스테이징된 파일을 리포지토리의 영구 스냅샷으로 캡처할 수 있습니다. Git 패널 인터페이스를 사용하여 커밋할 파일을 선택할 수 있습니다.

  • 준비 영역의 파일 커밋: Git 패널 메뉴로 이동하여 [커밋(Commit)] 또는 [스테이징된 항목 커밋(Commit Staged)]을 선택합니다.

  • 작업 디렉터리의 파일 모두 커밋: Git 패널 메뉴로 이동하여 [모두 커밋(Commit All)]을 선택합니다. (이 옵션은 git commit을 호출하기 전에 git add를 사용하여 준비 영역에 파일을 추가합니다.)

참고

또한 Git 패널을 사용하여 파일을 커밋할 때 amendsigned-off 옵션을 사용할 수 있습니다. amend 옵션은 가장 최근 커밋의 커밋 메시지를 수정합니다. sign-off 옵션은 Git 로그에서 커밋을 수행한 사용자를 식별할 수 있습니다.

Git 패널 메뉴로 이동하고 [마지막 커밋 실행 취소(Undo Last Commit)]를 선택하여 커밋을 되돌릴 수도 있습니다.

다른 파일 버전 보기

스테이징되거나 커밋된 후에 수정된 파일의 버전을 비교할 수 있습니다.

  • [변경 사항(Changes)]에 나열된 파일: 작업 디렉터리에 있는 버전과 마지막으로 스테이징되었거나 리포지토리에 커밋된 버전 간의 차이점을 보려면 ‘M’을 선택합니다.

  • [스테이징된 변경 사항(Staged Changes)]에 나열된 파일: 준비 영역에 있는 버전과 마지막으로 리포지토리에 커밋된 버전 간의 차이점을 보려면 ‘M’을 선택합니다.

‘M’을 선택하면 IDE 창에 두 버전의 파일 간의 차이점이 표시됩니다. 한쪽은 리포지토리에서 현재 버전으로 추적되는 버전을 보여줍니다. 다른 쪽은 아직 커밋되지 않은 수정된 버전을 보여줍니다.

git 리포지토리에서 버전이 지정된 콘텐츠 비교

브랜치 작업

Git는 리포지토리의 주요 브랜치와 독립적인 브랜치의 새로운 기능을 사용할 수 있도록 함으로써 워크플로 관리를 훨씬 용이하게 합니다. 여러 브랜치 간에 원활하게 전환하면서 기본 브랜치에 언제든 빌드할 소스 코드가 준비되어 있도록 합니다.

브랜치 생성

브랜치를 생성하려면 브랜치의 이름을 지정하고 시작점을 선택해야 합니다.

  1. Git 패널 메뉴에서 [다음으로 체크아웃(Checkout to)]을 선택합니다. 또는 Git 패널의 하단에 표시되는 현재 브랜치의 이름을 선택할 수 있습니다.

    현재 Git 브랜치 선택하기
  2. 새 브랜치를 생성하는 옵션을 선택합니다.

    • 새 브랜치 생성: 현재 브랜치의 마지막 커밋에서 새 브랜치가 시작됩니다.

    • 다음에서 새 브랜치 생성: 다음 화면에서 선택하는 브랜치의 마지막 커밋에서 새 브랜치가 시작됩니다.

  3. 새 브랜치의 이름을 입력합니다.

  4. 특정 브랜치를 브랜치의 시작점으로 지정하는 경우 목록에서 하나를 선택합니다.

새 브랜치로 전환한 후 Git 패널의 하단에서 현재 브랜치의 이름을 확인할 수 있습니다.

참고

원격 리포지토리로 작업하는 경우 업스트림 원격 리포지토리에 새 브랜치를 게시하여 다른 사용자가 콘텐츠에 액세스할 수 있도록 합니다.

브랜치 전환

Git을 사용하여 소스 제어를 관리하는 데 따른 주요 이점 중 하나는 브랜치를 전환하여 여러 프로젝트 간을 간단히 이동할 수 있다는 것입니다.

중요

현재 브랜치에 리포지토리에 커밋되지 않은 파일이 있는 경우 브랜치를 전환할 수 없습니다. 먼저 작업 내용을 커밋 또는 stash하여 작업 디렉터리를 정리해야합니다.

  1. Git 패널 하단에서 현재 브랜치의 이름을 선택합니다. 또는 Git 패널로 이동하여 [다음으로 체크아웃(Checkout to)]을 선택합니다.

  2. 표시된 목록에서 브랜치를 선택합니다.

전환하고 나면, 리포지토리의 작업 디렉터리가 선택한 브랜치에 가장 최근에 커밋된 파일 버전으로 업데이트됩니다.

브랜치 병합

개별 브랜치의 기능 작업을 마친 후에는 일반적으로 변경 내용을 주 프로젝트에 통합해야 합니다. Git를 사용하면 특정 브랜치(예: 기능 브랜치)를 다른 브랜치(일반적으로 리포지토리의 주 또는 기본 브랜치)로 병합하여 이러한 종류의 통합을 쉽게 수행할 수 있습니다.

  1. 다른 브랜치를 병합할 브랜치를 선택하려면 Git 패널 메뉴로 이동한 후 [다음으로 체크아웃(Checkout to)]을 선택합니다.

    또는 Git 패널의 하단ㄴ에서 현재 브랜치의 이름을 선택하합니다.

  2. 표시된 목록에서 전환할 브랜치를 선택합니다.

  3. [검색(Search)] 상자에 ‘merge’라는 단어를 입력하기 시작합니다.

    [명령(Commands)] 목록에 Git: Merge Branch가 표시되면 해당 명령을 선택합니다.

    병합 명령 찾기
  4. 표시된 목록에서 대상 브랜치로 병합할 브랜치를 선택합니다.

    병합이 충돌 없이 완료되면 Git 패널 인터페이스가 새로 고쳐져 병합된 변경 사항이 포함된 대상 브랜치가 표시됩니다.

브랜치를 병합하는 경우 동일한 콘텐츠에 대한 서로 호환되지 않는 변경 사항으로 인해 병합 충돌이 발생할 수 있습니다. 이 경우 병합을 커밋하기 전에 충돌을 해결해야 한다는 경고가 표시됩니다.

IDE의 코드 편집기 창을 사용하여 두 브랜치에서 충돌하는 콘텐츠를 식별한 다음 변경하여 차이를 해결할 수 있습니다.

병합 충돌을 해결하기 위한 IDE 창

원격 리포지토리 작업

인터넷이나 네트워크에서 호스팅되는 원격 리포지토리는 팀원이 로컬 리포지토리에 커밋한 변경 사항을 공유할 수 있도록 허용하여 협업을 용이하게 합니다. 데이터를 업로드하고 다운로드하는 Git 명령을 사용하면 ‘다운스트림’(로컬) 리포지토리의 콘텐츠가 ‘업스트림’(원격) 리포지토리의 콘텐츠와 동기화되도록 할 수 있습니다.

원격 리포지토리에 브랜치 게시

로컬 리포지토리의 브랜치를 생성하고 나면, 해당 브랜치는 사용자에게 프라이빗이며 원격 리포지토리에 ‘업스트림’으로 푸시할 때까지 공동 작업자가 사용할 수 없습니다.

  1. 현재 브랜치를 게시하려면 Git 패널 메뉴로 이동하여 [브랜치 게시(Publish Branch)]를 선택합니다. 또는 Git 패널 하단의 브랜치 이름 옆에 있는 클라우드 기호를 클릭합니다.

    원격 리포지토리에 브랜치를 게시하는 옵션
  2. 필요하다면 원격 리포지토리에 액세스할 수 있는 로그인 보안 인증 정보를 입력합니다.

브랜치가 원격 리포지토리에 성공적으로 게시되면 Git 패널 하단의 브랜치 이름 옆에 동기화 기호가 표시됩니다. 로컬 및 원격 리포지토리의 컨텐츠를 동기화하려면 이 기호를 선택합니다.

로컬 및 원격 브랜치 동기화 옵션

로컬 리포지토리와 원격 리포지토리 간에 컨텐츠 푸시 및 풀

Git을 사용하여 공유 프로젝트에서 협업하는 경우 일반적으로 다른 팀원의 최근 변경 사항을 원격 리포지토리에서 로컬 리포지토리로 풀하는 방식으로 작업을 시작합니다. 그리고 로컬 리포지토리의 변경 사항을 커밋한 후에는 나머지 팀이 액세스할 수 있도록 원격 리포지토리로 푸시합니다. 이러한 작업은 git pullgit push 명령을 사용하여 수행합니다.

참고

대부분의 호스트된 리포지토리(예: GitHub의 리포지토리)에서 변경 사항을 푸시하고 가져올 때 로그인 보안 인증 정보를 입력해야 합니다.

Pull changes from remote

Git 패널 인터페이스를 통해 git pull 명령을 사용하면 원격 리포지토리의 브랜치에 커밋된 최신 변경 사항으로 로컬 리포지토리를 업데이트할 수 있습니다.

  1. Git 패널 메뉴에서 [다음으로 체크아웃(Checkout to)]을 선택합니다.

  2. 브랜치 목록에서 변경 사항을 가져올 로컬 브랜치를 선택합니다.

  3. 그런 다음 Git 패널 메뉴로 이동하여 [다음에서 풀(Pull from)]을 선택합니다.

  4. 원격 리포지토리를 선택한 다음 해당 리포지토리의 브랜치를 선택하여 변경 사항을 가져옵니다.

풀 작업을 수행한 후에는 리포지토리 작업 디렉터리의 원격 리포지토리에서 검색한 파일에 액세스할 수 있습니다. 파일을 수정한 후 변경 사항을 원격 브랜치로 푸시할 수 있습니다.

Push changes to remote

Git 패널 인터페이스를 통해 git push 명령을 사용하면 로컬 리포지토리의 지정된 브랜치에 적용된 최신 변경 사항으로 원격 리포지토리를 업데이트할 수 있습니다.

  1. Git 패널 메뉴에서 [다음으로 체크아웃(Checkout to)]을 선택합니다.

  2. 브랜치 목록에서 변경 사항을 적용할 로컬 브랜치를 선택합니다.

  3. 그런 다음 Git 패널 메뉴로 이동하여 [다음으로 푸시(Push to)]를 선택합니다.

  4. 원격 리포지토리를 선택한 다음 해당 리포지토리의 브랜치를 선택하여 변경 사항을 푸시합니다.

푸시 작업을 수행하고 나면 다른 팀원이 해당 변경 사항을 리포지토리의 로컬 복사본으로 풀하여 액세스할 수 있습니다.

파일 stash 및 검색

Git의 stash 기능을 사용하면 먼저 스테이징 또는 수정된 파일을 커밋하지 않고도 브랜치를 전환할 수 있습니다. stash 기능은 작업 디렉터리 및 준비 영역의 현재 상태를 캡처하고 나중에 사용할 수 있도록 저장합니다. 이 기능은 아직 완성되지 않은 콘텐츠로 작업하고 지체없이 브랜치를 전환해야 할 때 유용합니다.

작업 stash
  1. 작업 디렉터리의 현재 상태를 숨기려면 Git 패널 메뉴로 이동하여 다음 옵션 중 하나를 선택합니다.

    • [Stash]: 작업 디렉터리의 수정되거나 스테이징된 파일이 모두 stash에 추가됩니다. 추적되지 않는 파일은 추가되지 않습니다.

    • [Stash(추적되지 않는 항목 포함)(Stash (include Untracked))]: 아직 추적되지 않는 파일을 포함하여 작업 디렉터리의 모든 파일이 stash에 추가됩니다.

  2. 나중에 검색할 stash를 식별하는 데 도움이 될 선택적 메시지를 입력합니다.

stash하고 나면 Git 패널 인터페이스가 새로 고쳐져 정리된 작업 디렉터리가 표시됩니다.

stash 검색
  1. stash를 검색하여 작업 디렉터리에 적용하려면 Git 패널 메뉴로 이동하여 다음 옵션 중 하나를 선택합니다.

    • [stash 적용(Apply Stash)]: 선택한 stash를 작업 디렉터리에 적용하고 나중에 사용할 수 있도록 stash를 유지합니다.

    • [Stage 팝(Pop Stash)]: 선택한 stash를 작업 디렉터리에 적용하고 해당 stash를 stash 스택에서 삭제합니다.

    참고

    stash 스택에 추가된 마지막 stash를 적용하거나 팝하도록 선택할 수도 있습니다.

  2. 작업 디렉터리에 적용할 stash를 선택합니다.

Git 패널 인터페이스가 새로 고쳐져 stash가 적용된 작업 디렉터리가 표시됩니다.