일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 컴퓨터과학
- 빅데이터
- 자바스크립트
- 버전관리
- 자료구조
- 데이터구조
- 파이썬
- 데이터과학
- 프로그래밍언어
- 인공지능
- 컴퓨터비전
- 코딩
- 보안
- 머신러닝
- 2
- Yes
- 사이버보안
- 네트워크
- 데이터베이스
- 프로그래밍
- 알고리즘
- 소프트웨어공학
- 소프트웨어
- 컴퓨터공학
- I'm Sorry
- 데이터분석
- 클라우드컴퓨팅
- 딥러닝
- 네트워크보안
- 웹개발
- Today
- Total
스택큐힙리스트
Git으로 가장 최근의 커밋을 새 브랜치로 이동시키세요. 본문
내가 최신 커밋을 마스터에서 새 브랜치로 이동하고, 마스터를 그 커밋 전으로 재설정하는 방법은 무엇인가요? 예: 이렇게요.
master A - B - C - D - E
이것에 대해:
newbranch C - D - E
/
master A - B
답변 1
기존 지점으로 이전하기
기존 브랜치로 커밋을 이동하려면 다음과 같이 진행하면 됩니다.
git checkout existingbranch
git merge branchToMoveCommitFrom
git checkout branchToMoveCommitFrom
git reset --hard HEAD~3 # Go back 3 commits. You *will* lose uncommitted work.
git checkout existingbranch
당신은 git stash를 사용하여 이 작업을 하기 전에 수정하지 않은 내용을 스태시에 저장할 수 있습니다. 작업이 완료되면 git stash pop로 스태시에 저장된 수정하지 않은 내용을 검색할 수 있습니다.
새로운 지점으로 이동하기
경고: 이 방법은 첫 번째 명령어를 사용하여 새 브랜치를 만드는 것이기 때문에 작동합니다: git branch newbranch . 기존 브랜치로 커밋을 이동하려면 git reset --hard HEAD~3 를 실행하기 전에 변경 사항을 기존 브랜치로 머지해야합니다 (위의 기존 브랜치로 이동 참조). 변경 사항을 먼저 병합하지 않으면 변경 사항이 손실됩니다.
기타 상황이 없는 경우 브랜칭과 롤백으로 쉽게 수행할 수 있습니다.
# Note: Any changes not committed will be lost.
git branch newbranch # Create a new branch, saving the desired commits
git checkout master # checkout master, this is the place you want to go back
git reset --hard HEAD~3 # Move master back by 3 commits (Make sure you know how many commits you need to go back)
git checkout newbranch # Go to the new branch that still has the desired commits
하지만 돌아갈 커밋 수를 반드시 확인하십시오. 대신 명령어 대신 원하는 되돌릴 커밋의 해시 (또는 origin/master와 같은 참조)를 마스터(/현재) 브랜치에서 제공할 수 있습니다. 예를 들어:
git reset --hard a1b2c3d4
당신은 마스터 브랜치에서만 커밋이 없어진다는 것에 대해 걱정하지 마세요. 그러나 새로운 브랜치에서 커밋을 가지고 있을 것입니다!
마지막으로, 메인 저장소에 최신 변경 사항을 강제로 푸시하기 위해 you may need를 사용하세요.
git push origin master --force
경고: Git 버전 2.0 이상에서는 이후에 git rebase 새 브랜치를 기존 master 브랜치 위에 병합하면 전달된 커밋을 잃지 않으려면 리베이스 중 명시적인 --no-fork-point 옵션이 필요할 수 있습니다. branch.autosetuprebase always가 설정되어 있으면 이 가능성이 더 높아집니다. 자세한 내용은 John Mellor's answer를 참조하세요.
답변 2
Git에서 최신 커밋을 새 브랜치로 이동하는 방법
Git을 사용하여 소스 코드를 관리할 때 최신 커밋을 새 브랜치로 이동하는 방법이 중요합니다. 이 작업은 소스 코드의 특정 버전을 유지하고 관리할 수 있도록 도와줍니다. 이번 에세이에서는 Git에서 최신 커밋을 새 브랜치로 이동하는 방법을 살펴보겠습니다.
Git에서 최신 커밋을 새 브랜치로 이동하는 방법은 매우 간단합니다. 우선, 현재 브랜치에서 최신 커밋을 확인합니다. 이후에는 새 브랜치를 생성하고, 최신 커밋을 해당 브랜치로 이동합니다.
먼저, 현재 브랜치에서 최신 커밋을 확인합니다. 이를 위해서는 다음과 같은 명령어를 실행하면 됩니다.
$ git log
이 명령어를 실행하면 현재 브랜치에서의 모든 커밋을 확인할 수 있습니다. 여기서 가장 최신의 커밋을 확인하고 해당 커밋의 해시 값을 복사해 둡니다.
다음으로, 새 브랜치를 생성합니다. 이를 위해서는 다음과 같은 명령어를 실행하면 됩니다.
$ git branch [new_branch_name]
여기서 '[new_branch_name]'은 새로 생성할 브랜치 이름을 입력하면 됩니다.
이제, 새로 생성한 브랜치로 이동합니다. 이를 위해서는 다음과 같은 명령어를 실행하면 됩니다.
$ git checkout [new_branch_name]
이제, 최신 커밋을 새 브랜치로 이동합니다. 이를 위해서는 다음과 같은 명령어를 실행하면 됩니다.
$ git cherry-pick [commit_hash]
여기서 '[commit_hash]'는 이전에 복사해 둔 최신 커밋의 해시 값입니다.
위의 과정을 모두 실행하면 현재 브랜치에서 최신 커밋이 새 브랜치로 이동됩니다. 이제 새 브랜치에서 해당 커밋을 사용할 수 있습니다.
결론적으로, Git에서 최신 커밋을 새 브랜치로 이동하는 방법은 매우 간단합니다. 이를 통해 소스 코드의 버전을 유지하고 다양한 작업을 수행할 수 있습니다. 이번 에세이에서 다룬 방법을 기억하고, Git을 효율적으로 활용하시기 바랍니다.