Development Tip

다른 브랜치에서 Git에 브랜치 만들기

yourdevel 2020. 9. 28. 10:17
반응형

다른 브랜치에서 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" 의 단계를 따릅니다 :

  1. 체크 아웃 또는 "branch1" 로 변경

    git checkout branch1
    
  2. 이제라는 새로운 지점 생성 "subbranch_of_b1을" 언더 "BRANCH1" 다음 명령을 사용하여.

    git checkout -b subbranch_of_b1 branch1
    

    위의라는 새로운 지점이 생성됩니다 subbranch_of_b1 분기 아래 BRANCH1 (주의를 branch1, 위의 명령에 HEAD는 현재 그것을 가리키는 때문에 의무적으로하지 않습니다 당신이 할 수있는 정확한 그것은 다른 지점하지만에있는 경우).

  3. 이제 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
Singleline difference
  • $ 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:

  1. You are currently in master branch.
  2. You have no changes to commit. (If you have any changes to commit, stash it!).
  3. BranchExisting is the name of branch from which you need to make a new branch with name BranchMyNew.

Steps:

  1. 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.

  1. 이제 마스터 브랜치 체크 아웃에서 새로 가져온 브랜치로

    $ git checkout BranchExisting
    
  2. 이제 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

반응형