Git에서 한 분기에서 다른 분기로 변경 사항을 가져오는 방법

How Pull Changes From One Branch Another Git



git 저장소에는 코드를 효율적으로 관리하기 위한 하나 이상의 분기가 있습니다. 때때로 git 사용자는 여러 브랜치에서 동시에 작업해야 하고 커밋 전에 이전 브랜치에서 변경된 사항을 현재 브랜치로 변경하여 한 브랜치에서 다른 브랜치로 전환해야 합니다. 이 작업은 git에서 여러 방법을 사용하여 수행할 수 있습니다. 이 자습서에서는 터미널에서 stash 명령을 사용하고 GitHub 데스크톱에서 명령을 병합하여 한 분기에서 다른 분기로 변경 사항을 가져올 수 있습니다.

전제 조건

1. GitHub 데스크톱 설치
GitHub Desktop은 git 사용자가 git 관련 작업을 그래픽으로 수행하는 데 도움이 됩니다. github.com에서 Ubuntu용 이 애플리케이션의 최신 설치 프로그램을 쉽게 다운로드할 수 있습니다. 이 애플리케이션을 사용하려면 다운로드 후 설치 및 구성해야 합니다. Ubuntu에 GitHub Desktop 설치에 대한 자습서를 확인하여 설치 프로세스를 올바르게 알 수도 있습니다.







2. GitHub 계정 생성
로컬 리포지토리의 변경 사항을 게시한 후 원격 리포지토리의 모양을 확인하려면 GitHub 계정을 만들어야 합니다.



3. 로컬 저장소 생성
이 튜토리얼에서 사용된 명령어를 확인하려면 로컬 저장소를 생성해야 합니다.



은닉 명령 사용

이름이 지정된 로컬 저장소 PHP2 이 튜토리얼에서는 리포지토리의 한 분기에서 다른 분기로 변경 사항을 가져오는 방법을 보여주기 위해 사용되었습니다. 라는 이름의 파일 생성 index.html 리포지토리에서. 터미널을 열고 저장소 폴더로 이동하십시오. 다음 명령어를 실행하여 분기 목록을 확인하고 마스터 분기로 전환하여 분기 상태를 표시합니다.





$ 자식 분기
$ git 체크아웃 마스터
$ 자식 상태

위의 명령을 실행하면 다음과 같은 출력이 나타납니다. 출력은 저장소에 두 개의 분기가 포함되어 있음을 보여줍니다. 메인 분기가 처음에 활성화되었습니다. 로 전환한 후 주인 분기, 상태 출력은 현재 분기가 활성 상태이고 index.html 파일이 추적되지 않습니다.



다음 명령어를 실행하여 추적되지 않은 파일을 추적하고 git 저장소 상태를 다시 확인합니다.

$ 자식 index.html 추가
$ 자식 상태

위의 명령을 실행하면 다음 출력이 나타납니다. 상태의 출력은 다음을 보여줍니다. index.html 파일이 저장소에 추가되지만 커밋해야 합니다.

다음 명령어를 실행하여 git 저장소의 상태를 다시 확인합니다. `git stash` 명령은 `git commit` 명령처럼 작동합니다. 이 명령을 실행한 후 저장소의 작업 디렉토리가 정리됩니다.

$ 자식 숨김
$ 자식 상태

위의 명령을 실행하면 다음 출력이 나타납니다.

브랜치에 대한 stash 명령을 실행한 후 git 사용자가 브랜치의 변경 사항을 다른 브랜치로 가져오려는 경우 `git merge` 명령처럼 작동하는 `git stash pop` 명령을 사용하여 쉽게 수행할 수 있습니다. 전환하려면 다음 명령을 실행하십시오. 메인 분기하고 변경 사항을 가져옵니다. 주인 에 분기 기본 나뭇 가지.

$ git 체크아웃 메인
$ git 숨김 팝

현재 분기가 다음임을 나타내는 위의 명령을 실행하면 다음 출력이 나타납니다. 기본 그리고 index.html 이 분기에 파일이 추가됩니다.

다음 명령어를 실행하여 커밋 메시지와 함께 이전 작업을 커밋하고 상태를 다시 확인합니다.

$ git commit -m '인덱스 파일 추가'
$ 자식 상태

위의 명령을 실행하면 다음 출력이 나타납니다. 상태의 출력은 커밋 후 작업 트리가 이제 깨끗하다는 것을 보여줍니다.

로컬 리포지토리 변경 사항이 원격 리포지토리에 푸시되고 원격 리포지토리가 github.com에서 열리면 리포지토리가 다음 이미지와 같이 표시됩니다.

병합 명령 사용

이 튜토리얼의 이 부분에서는 한 분기에서 다른 분기로 변경 사항을 가져오는 또 다른 방법을 보여줍니다. 이름이 지정된 로컬 저장소 파일 읽기 여기를 사용했습니다. 저장소 위치에 read.php라는 파일을 만듭니다. 다음 명령을 실행하여 마스터 브랜치로 전환하고 read.php 파일을 추가하고 작업을 커밋합니다. 분기 명령은 분기 목록을 표시합니다. checkout 명령은 분기를 마스터로 전환합니다. status 명령은 분기의 현재 상태를 표시합니다. add 명령은 저장소에 추적되지 않은 파일을 추가합니다. commit 명령은 작업을 확인합니다.

$ 자식 분기
$ git 체크아웃 마스터
$ 자식 상태
$ 자식 read.php 추가
$ git commit -m '읽기 스크립트 추가'

위의 명령을 실행하면 다음 출력이 나타납니다. read.php 파일이 저장소의 마스터 브랜치에 추가되었고 작업도 커밋되었습니다.

위의 작업을 완료한 후 변경 사항이 주인 지점으로의 이전이 필요합니다. 기본 지점, 그럼 병합 명령을 사용하여 이 작업을 수행할 수 있습니다. 병합 명령은 터미널에서 또는 GitHub 데스크톱 애플리케이션을 사용하여 사용할 수 있습니다. GitHub Desktop을 사용하여 분기를 병합하는 방법은 자습서의 이 부분에 나와 있습니다. GitHub Desktop에서 로컬 리포지토리를 엽니다. 다음을 클릭하여 분기 목록 대화 상자를 엽니다. 지점 목록 ~로부터 보다 메뉴를 선택하고 기본 분기를 활성 분기로 지정합니다. 이제 현재 분기로 병합… ~로부터 나뭇 가지 메뉴. 선택 주인 대화 상자에서 분기하고 마스터를 메인에 병합 버튼을 눌러 변경 사항을 가져옵니다. 주인 가지 메인 나뭇 가지. 당신은 삭제할 수 있습니다 주인 분기에 저장소가 필요하지 않은 경우 병합 작업을 완료한 후 분기.

결론

한 브랜치에서 다른 브랜치로 변경 사항을 가져오는 두 가지 다른 방법이 이 자습서에서 두 개의 데모 로컬 리포지토리를 사용하여 표시되었습니다. NS 숨기는 장소 그리고 가다 git 명령은 여기에서 작업을 수행하는 데 사용되었습니다. 이 자습서에서는 분기를 그래픽으로 병합하는 방법을 보여주기 위해 GitHub 데스크톱을 사용했습니다.