다른 브랜치에서 Git에 브랜치 만들기
두 가지 분기 : 마스터 및 개발
dev 브랜치 에서 "기능 브랜치"를 만들고 싶습니다 .
현재 브랜치 dev에서 다음을 수행합니다.
$ git checkout -b myfeature dev
... (일부 작업)
$ git commit -am "blablabla"
$ git push origin myfeature
그러나 내 지점을 시각화 한 후 다음을 얻었습니다.
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
나는 가지가 합쳐진 것처럼 보이며 왜 그런지 이해하지 못한다는 것을 의미합니다 ...
내가 뭘 잘못하고 있니?
다른 브랜치에서 분기하고 기능 브랜치를 위해 원격 저장소로 푸시하는 방법을 설명해 주시겠습니까?
여기에 설명 된 것과 같은 분기 모델의 모든 것 .
게시 한 링크의 방법이 마음에 들면 Git Flow를 살펴보십시오 .
그 워크 플로우를 위해 그가 만든 스크립트 세트입니다.
그러나 귀하의 질문에 대답하려면 :
$ git checkout -b myFeature dev
dev에서 MyFeature 분기를 만듭니다. 당신의 일을하고
$ git commit -am "Your message"
이제 빨리 감기없이 변경 사항을 dev에 병합
$ git checkout dev
$ git merge --no-ff myFeature
이제 변경 사항을 서버에 푸시
$ git push origin dev
$ git push origin myFeature
그리고 원하는 방식으로 볼 수 있습니다.
Git의 기존 분기에서 새 분기를 만들려면 옵션을 따르십시오.
먼저 새 브랜치를 만들려는 브랜치로 변경 / 체크 아웃합니다. 예를 들어, 다음과 같은 분기가있는 경우 :
- 석사
- dev
- branch1
당신이라는 새로운 지점 만들려면 그래서 "subbranch_of_b1" 라는 이름의 분기 아래를 "BRANCH1" 의 단계를 따릅니다 :
체크 아웃 또는 "branch1" 로 변경
git checkout branch1
이제라는 새로운 지점 생성 "subbranch_of_b1을" 언더 "BRANCH1" 다음 명령을 사용하여.
git checkout -b subbranch_of_b1 branch1
위의라는 새로운 지점이 생성됩니다 subbranch_of_b1 분기 아래 BRANCH1 (주의를
branch1
, 위의 명령에 HEAD는 현재 그것을 가리키는 때문에 의무적으로하지 않습니다 당신이 할 수있는 정확한 그것은 다른 지점하지만에있는 경우).이제 subbranch_of_b1로 작업 한 후 로컬 또는 원격으로 커밋하고 푸시하거나 병합 할 수 있습니다.
subbranch_of_b1을 원격으로 푸시
git push origin subbranch_of_b1
브랜치 생성
- 마스터 브랜치를 체크 아웃하면 브랜치를 생성합니다. 여기서 마스터의 커밋은 생성 한 브랜치에 동기화됩니다.
$ git branch branch1
- branch1이 체크 아웃되면 분기를 생성합니다. 여기서 branch1의 커밋은 branch2에 동기화됩니다.
$ git branch branch2
지점 확인
git checkout 명령 분기 전환 또는 작업 트리 파일 복원
$ git checkout branchname
분기 이름 변경
$ git branch -m branch1 newbranchname
지점 삭제
$ git branch -d branch-to-delete
$ git branch -D branch-to-delete
( force deletion without checking the merged status )
Create and Switch Branch
$ git checkout -b branchname
Branches that are completely included
$ git branch --merged
************************** Branch Differences [ git diff branch1..branch2 ] ************************
Multiline difference$ git diff master..branch1
$ git diff --color-words branch1..branch2
Do simultaneous work on the dev
branch. What happens is that in your scenario the feature branch moves forward from the tip of the dev branch, but the dev branch does not change. It's easier to draw as a straight line, because it can be thought of as forward motion. You made it to point A on dev, and from there you simply continued on a parallel path. The two branches have not really diverged.
Now, if you make a commit on dev, before merging, you will again begin at the same commit, A, but now features will go to C and dev to B. This will show the split you are trying to visualize, as the branches have now diverged.
*-----*Dev-------*Feature
Versus
/----*DevB
*-----*DevA
\----*FeatureC
Git 2.23 introduces git switch
and git restore
to split the responsibilities of git checkout
Creating a new branch from an existing branch as of git 2.23:
git switch -c my-new-branch
Switched to a new branch 'my-new-branch'
- -c is short for --create and replaces the well-known git checkout -b
Take a look at this Github blog post explaining the changes in greater detail:
Git 2.23 brings a new pair of experimental commands to the suite of existing ones: git switch and git restore. These two are meant to eventually provide a better interface for the well-known git checkout. The new commands intend to each have a clear separation, neatly divvying up what the many responsibilities of git checkout
If you want to make a branch from some another branch then follow bellow steps:
Assumptions:
- You are currently in master branch.
- You have no changes to commit. (If you have any changes to commit, stash it!).
BranchExisting
is the name of branch from which you need to make a new branch with nameBranchMyNew
.
Steps:
Fetch the branch to your local machine.
$ git fetch origin BranchExisting : BranchExisting
This command will create a new branch in your local with same branch name.
이제 마스터 브랜치 체크 아웃에서 새로 가져온 브랜치로
$ git checkout BranchExisting
이제 BranchExisting에 있습니다. 이제이 기존 분기에서 새 분기를 만듭니다.
$ git checkout -b BranchMyNew
여기 있습니다!
다른 분기에서 분기를 만들려면 다음 구문도 사용할 수 있습니다.
git push origin refs/heads/<sourceBranch>:refs/heads/<targetBranch>
"git checkout -b"+ "git push origin"보다 약간 짧습니다.
참고 URL : https://stackoverflow.com/questions/4470523/create-a-branch-in-git-from-another-branch
'Development Tip' 카테고리의 다른 글
Git에서 분기 토폴로지 시각화 (0) | 2020.09.28 |
---|---|
Chrome 개발자 도구에서 마우스 오버 상태를 참조하세요 (0) | 2020.09.28 |
MySQL의 여러 열에 대한 고유 제약 조건을 어떻게 지정합니까? (0) | 2020.09.28 |
EditText의 텍스트 끝에 커서를 놓습니다. (0) | 2020.09.28 |
MySQL 데이터베이스의 테이블 크기를 얻는 방법은 무엇입니까? (0) | 2020.09.28 |