n 커밋이 있는 경우 n-3 커밋에서 어떻게 분기할 수 있습니까?
모든 커밋의 해시를 볼 수 있습니다.
질문자 :dole doug
n 커밋이 있는 경우 n-3 커밋에서 어떻게 분기할 수 있습니까?
모든 커밋의 해시를 볼 수 있습니다.
해시를 통해 분기를 만들 수 있습니다.
git branch branchname <sha1-of-commit>
또는 기호 참조를 사용하여:
git branch branchname HEAD~3
브랜치를 생성할 때 체크아웃하려면 다음을 사용하십시오.
git checkout -b branchname <sha1-of-commit or HEAD~3>
github.com에서 이 작업을 수행하려면:
마법은 git reset 으로 수행할 수 있습니다.
새 분기를 만들고 전환하십시오(모든 최신 커밋이 여기에 저장됨).
git checkout -b your_new_branch
이전 작업 분기로 다시 전환(마스터라고 가정)
git checkout master
최신 x 커밋을 제거하고 마스터를 깨끗하게 유지하십시오.
git reset --hard HEAD~x # in your case, x = 3
이 순간부터 모든 최신 x 커밋은 더 이상 이전 작업 분기(마스터)가 아닌 새 분기에만 있습니다.
분기할 커밋이 무엇인지 미리 확실하지 않은 경우 다음을 통해 커밋을 확인하고 해당 코드를 검사할 수 있습니다(소스, 컴파일, 테스트 참조).
git checkout <sha1-of-commit>
분기하려는 커밋을 찾으면 일반적인 방식으로 분기를 생성하여 커밋 내에서(즉, 먼저 마스터로 돌아가지 않고) 수행할 수 있습니다.
git checkout -b <branch_name>
git checkout -b <branch-name> <sha1-of-commit>
다음을 실행하기만 하면 됩니다.
git checkout -b branch-name <commit>
예를 들어 :
git checkout -b import/january-2019 1d0fa4fa9ea961182114b63976482e634a8067b8
checkout
매개 변수와 명령 -b
새로운 지점을 생성하고 그것을 당신을 전환됩니다
훌륭한 관련 질문은 다음과 같습니다. --help
옵션을 사용하여 이것을 어떻게 알아낼 수 있습니까? 이것을 시도해보자:
git branch --help
다음 출력이 표시됩니다.
NAME git-branch - List, create, or delete branches SYNOPSIS git branch [--color[=<when>] | --no-color] [-r | -a] [--list] [-v [--abbrev=<length> | --no-abbrev]] [--column[=<options>] | --no-column] [(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>] [--points-at <object>] [<pattern>...] git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>] git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>] git branch --unset-upstream [<branchname>] git branch (-m | -M) [<oldbranch>] <newbranch> git branch (-d | -D) [-r] <branchname>... git branch --edit-description [<branchname>]
고블데국.
"commit"이라는 단어에 대한 후속 텍스트를 검색합니다. 우리는 이것을 찾습니다:
<start-point> The new branch head will point to this commit. It may be given as a branch name, a commit-id, or a tag. If this option is omitted, the current HEAD will be used instead.
우리는 어딘가에 도착하고 있습니다!
이제 gobbledegook의 다음 줄에 집중하십시오.
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
이를 다음과 같이 압축합니다.
git branch <branchname> [<start-point>]
그리고 완료.
이렇게 하면 하나의 명령으로 분기가 생성됩니다.
git push origin <sha1-of-commit>:refs/heads/<branch-name>
나는 즉시 분기를 생성하기 때문에 위에 게시된 방법보다 이 방법을 더 선호합니다(나중에 추가 푸시 명령이 필요하지 않음).
Github 리포지토리에서 빠르게 수행하는 방법은 다음과 같습니다.
소스트리 사용하기 | 가장 쉬운 방법.
Eclipse에서 이 작업을 수행하려면 다음을 수행합니다.
그것은 당신을 위해 로컬 지점을 만들 것입니다. 그런 다음 변경 사항을 푸시할 때마다 분기가 원격 서버로 푸시됩니다.
Stash에서 할 수 있습니다.
나는 다음과 같이 할 수 있었다.
git branch new_branch_name `git log -n 1 --skip 3 --format=%H`
건너뛰기 값을 입력해야 하는 위치입니다. 0은 최신, 1은 이전, 2는 그 이전 커밋 등입니다.
이것이 내가 한 일입니다.
C:\Users\[path]\build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b Switched to a new branch 'responsivenavigation' C:\Users\jaimemontoya\[path]\app>git branch master * responsivenavigation
이 경우 8a75b001096536b3216022484af3026aa9c7bb5b
master
브랜치에 속한 이전 커밋입니다.
git 저장소의 특정 커밋으로 이동
때때로 git 리포지토리에서 작업할 때 특정 시간에 프로젝트의 스냅샷을 갖기 위해 특정 커밋(개정)으로 돌아가고 싶을 때가 있습니다. 그렇게 하려면 다음 명령으로 로그를 확인하는 것을 쉽게 찾을 수 있는 커밋의 SHA-1 해시가 필요합니다.
git log --abbrev-commit --pretty=oneline
그러면 모든 커밋의 간략한 목록과 SHA-1 해시의 짧은 버전이 제공됩니다.
이동하려는 커밋의 해시를 알았으므로 이제 다음 두 명령 중 하나를 사용할 수 있습니다.
git checkout HASH
또는
git reset --hard HASH
점검
git checkout <commit> <paths>
경로의 현재 상태를 주어진 커밋의 상태로 바꾸도록 git에 지시합니다. 경로는 파일 또는 디렉토리일 수 있습니다.
분기가 제공되지 않으면 git은 HEAD 커밋을 가정합니다.
git checkout <path> // restores path from your last commit. It is a 'filesystem-undo'.
경로가 지정되지 않은 경우 git은 HEAD
를 지정된 커밋으로 이동합니다(따라서 앉아서 작업 중인 커밋을 변경함).
git checkout branch //means switching branches.
초기화
git reset <commit> //re-sets the current pointer to the given commit.
당신이 브랜치에 있다면(보통 그래야 한다), HEAD
와 이 브랜치는 커밋으로 옮겨진다.
분리된 HEAD
상태인 경우 git reset 은 HEAD
만 이동합니다. 분기를 재설정하려면 먼저 확인하십시오.
git reset과 git checkout의 차이점에 대해 더 알고 싶다면 공식 git 블로그 를 읽는 것이 좋습니다.
꽤 직관적인 소스 트리를 사용한다면.
명령줄 기반 솔루션을 찾고 있다면 내 대답을 무시해도 됩니다. GitKraken 을 사용하는 것이 좋습니다. 특별한 git UI 클라이언트입니다. 홈페이지에 Git 트리를 보여줍니다. 당신은 단지 그들을보고 프로젝트에 무슨 일이 일어나고 있는지 알 수 있습니다. 특정 커밋을 선택하고 마우스 오른쪽 버튼으로 클릭한 다음 '여기에 분기 만들기' 옵션을 선택하기만 하면 됩니다. 브랜치 이름을 입력할 수 있는 텍스트 상자가 표시됩니다. 지점 이름을 입력하고 '확인'을 선택하면 설정됩니다. 사용하기 정말 쉽습니다.
출처 : http:www.stackoverflow.com/questions/2816715/branch-from-a-previous-commit-using-git
Android에서 '컨텍스트'란 무엇입니까? (0) | 2021.11.30 |
---|---|
Java의 문자열 값에서 열거형 값을 얻는 방법 (0) | 2021.11.30 |
복사 및 교환 관용구는 무엇입니까? (0) | 2021.11.30 |
Git 관리 프로젝트의 모든 로컬 변경 사항을 이전 상태로 되돌리려면 어떻게 해야 합니까? (0) | 2021.11.30 |
HTML의 id 속성에 유효한 값은 무엇입니까? (0) | 2021.11.30 |