etc./StackOverFlow

원격 Git 브랜치를 어떻게 생성합니까?

청렴결백한 만능 재주꾼 2021. 10. 9. 02:26
반응형

질문자 :Jesper Rønn-Jensen


업스트림으로 '푸시'하려는 로컬 지점을 만들었습니다. 새로 생성된 원격 분기를 추적하는 방법에 대한 유사한 질문이 여기 Stack Overflow에 있습니다.

그러나 내 작업 흐름은 약간 다릅니다. 먼저 로컬 브랜치를 만들고 싶고 만족하고 내 브랜치를 공유하고 싶을 때만 업스트림으로 푸시합니다.

  • 어떻게 해야 할까요? (내 Google 검색에는 아무 것도 나오지 않은 것 같습니다).
  • 동료들에게 업스트림 리포지토리에서 가져오도록 어떻게 말합니까?

업데이트 Git 2.0에는 아래에 작성한 간단한 답변이 있습니다. https://stackoverflow.com/a/27185855/109305



먼저 로컬에서 분기를 만듭니다.

 git checkout -b <branch-name> # Create a new branch and check it out

원격 분기는 원격 서버에 푸시할 때 자동으로 생성됩니다. 따라서 준비가 되었다고 생각되면 다음을 수행할 수 있습니다.

 git push <remote-name> <branch-name>

여기서 <remote-name> 은 일반적으로 origin 이며 git이 복제한 원격 장치에 부여하는 이름입니다. 그러면 동료가 해당 분기를 가져오면 로컬에서 자동으로 생성됩니다.

그러나 공식적으로 형식은 다음과 같습니다.

 git push <remote-name> <local-branch-name>:<remote-branch-name>

그러나 하나를 생략하면 두 가지 이름이 모두 동일한 것으로 가정합니다. 이 말은 주의 :<remote-branch-name> (콜론 포함)만 지정하는 치명적인 실수를 하지 마십시오. 그렇지 않으면 원격 분기가 삭제됩니다!

후속 git pull 이 수행할 작업을 알 수 있도록 대신 다음을 사용할 수 있습니다.

 git push --set-upstream <remote-name> <local-branch-name>

아래 설명된 대로 --set-upstream 옵션은 업스트림 분기를 설정합니다.

최신 상태이거나 성공적으로 푸시된 모든 분기에 대해 인수가 없는 git-pull(1) 및 기타 명령에서 사용되는 업스트림(추적) 참조를 추가합니다.


Ikke

먼저 로컬에서 분기를 생성해야 합니다.

 git checkout -b your_branch

그런 다음 분기에서 로컬로 작업할 수 있습니다. 분기를 공유할 준비가 되면 푸시합니다. 다음 명령은 분기를 원격 저장소 원본으로 푸시하고 추적합니다.

 git push -u origin your_branch

팀원은 다음을 통해 지점에 연결할 수 있습니다.

 git fetch git checkout origin/your_branch

git push에 인수를 전달하지 않고 브랜치에서 계속 작업하고 원할 때마다 푸시할 수 있습니다(인수 없는 git push는 마스터를 원격 마스터로, your_branch 로컬에서 원격 your_branch 등...).

 git push

팀원은 커밋을 수행하여 브랜치로 푸시한 다음 명시적으로 푸시할 수 있습니다.

 ... work ... git commit ... work ... git commit git push origin HEAD:refs/heads/your_branch

또는 git push에 대한 인수를 피하기 위해 분기를 추적합니다.

 git checkout --track -b your_branch origin/your_branch ... work ... git commit ... work ... git commit git push

dseminara

간단한 Git 2.0+ 솔루션:

Git 2.0부터 동작이 더 간단해졌습니다 .

삶을 더 쉽게 만들기 위해 push.default = current 로 git을 구성할 수 있습니다.

나는 이것을 추가하여 이제 다음을 사용하여 새 분기를 업스트림으로 푸시할 수 있습니다.

 $ git push -u

-u 는 같은 이름의 원격 분기를 추적합니다. 이제 이 구성을 사용하여 git push에 대한 원격 참조를 자동으로 추측합니다. git.config 문서에서 :

push.default

refspec이 명시적으로 제공되지 않은 경우 git push가 수행해야 하는 작업을 정의합니다.

push.default = current - 현재 분기를 푸시하여 수신 측에서 같은 이름의 분기를 업데이트합니다. 중앙 및 비중앙 워크플로우 모두에서 작동합니다.

나에게 이것은 내 일상적인 Git 워크플로를 단순화한 것입니다. 구성 설정은 분기를 로컬로 추가하고 원격으로 생성하려는 '일반적인' 사용 사례를 처리합니다. git co remote_branch_name 수행하여 원격에서 로컬 분기를 쉽게 만들 수 있습니다 --set-upstream-to 플래그를 사용하는 것과 반대).

이 질문과 허용된 답변이 다소 오래되었다는 것을 알고 있지만 동작이 변경되어 이제 워크플로를 더 간단하게 만드는 구성 옵션이 존재합니다.

전역 Git 구성에 추가하려면 명령줄에서 다음을 실행합니다.

 $ git config --global push.default current

Jesper Rønn-Jensen

이전 답변에서 언급했듯이

 git push <remote-name> <local-branch-name>:<remote-branch-name>

로컬 지점을 푸시하기에 충분합니다.

동료는 다음 명령을 사용하여 모든 원격 분기(새 분기 포함)를 가져올 수 있습니다.

 git remote update

그런 다음 분기를 변경하기 위해 일반적인 흐름은 다음과 같습니다.

 git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>

Lucian

현재 분기를 기반으로 로컬에서 새 분기를 만듭니다.

 git checkout -b newbranch

평소와 같이 변경 사항을 커밋합니다. 그런 다음 업스트림으로 푸시합니다.

 git push -u origin HEAD

origin 에서 같은 이름의 브랜치로 푸시하고 이후에 origin HEAD 를 지정할 필요가 없도록 추적하는 바로 가기입니다.


Zenexer

현재 브랜치에서 브랜치를 생성하고 싶다면

 git checkout -b {your_local_branch_name}

원격 지점의 지점을 원하면 시도해 볼 수 있습니다.

 git checkout -b {your_local_branch_name} origin/<remote_branch_name>

변경이 완료되면 파일을 추가할 수 있습니다.

 git add -A or git add <each_file_names>

그런 다음 로컬에서 커밋하십시오.

 git commit -m 'your commit message'

원격 저장소로 푸시하려는 경우

 git push -u origin <your_local_branch_name>

모두 함께 것입니다

 git checkout -b bug_fixes

bug_fixes 를 만들고 싶다면 development 이라고 말하십시오.

 git checkout -b bug_fixes origin/development

다음을 통해 지점을 원격 저장소로 푸시할 수 있습니다.

 git push -u origin bug_fixes

다른 브랜치에서 브랜치를 업데이트하고 싶을 때마다 master 라고 말하십시오.

 git pull origin master

sreekumar

[빠른 답변]

2단계로 수행할 수 있습니다.

1. checkout 을 사용하여 로컬 브랜치를 생성합니다.

 git checkout -b yourBranchName

2. push 명령을 사용하여 분기를 자동 생성하고 코드를 원격 리포지토리로 보냅니다.

 git push -u origin yourBranchName

여러 가지 방법이 있지만 이 방법은 정말 간단하다고 생각합니다.


Javier C.

로컬 분기 없이 실제로 원격 분기를 만들고 싶다면 다음과 같이 할 수 있습니다.

 git push origin HEAD:refs/heads/foo

그것은 원격에 존재하지 않는 분기 foo에 HEAD가 무엇이든 푸시합니다.


Tassadar

가장 쉬운 솔루션... 드럼 롤... git 버전 2.10.1(Apple Git-78)

 1) git checkout -b localBranchNameThatDoesNotExistInRemote 2) Do your changes, and do a git commit 3) git push origin localBranchNameThatDoesNotExistInRemote --force

주의 - 로컬 환경에서 방금 생성한 브랜치와 푸시하려는 원격 존재하지 않는 브랜치 는 동일한 이름을 가져야 합니다 .


sapy

먼저 로컬에서 분기를 만듭니다.

 git checkout -b your_branch

그런 다음 원격으로 분기를 생성하려면 다음을 수행하십시오.

 git push --set-upstream origin your_branch

참고: 이것은 최신 버전의 git에서 작동합니다.

 $ git --version git version 2.3.0

건배!


ipegasus

로컬 컴퓨터에 분기를 만들고 이 분기에서 전환합니다.

 $ git checkout -b [name_of_your_new_branch]

github에서 분기를 푸시합니다.

 $ git push origin [name_of_your_new_branch]

브랜치에서 무언가를 커밋하려면 브랜치에 있어야 합니다.

다음을 사용하여 생성된 모든 분기를 볼 수 있습니다.

 $ git branch

다음을 표시합니다.

 * approval_messages master master_clean

분기에 대한 새 리모컨을 추가합니다.

 $ git remote add [name_of_your_remote]

커밋의 변경 사항을 브랜치로 푸시합니다.

 $ git push origin [name_of_your_remote]

공식 저장소의 원래 분기가 업데이트되면 분기를 업데이트하십시오.

 $ git fetch [name_of_your_remote]

그런 다음 변경 사항 병합에 적용해야 합니다. 분기가 개발에서 파생된 경우 다음을 수행해야 합니다.

 $ git merge [name_of_your_remote]/develop

로컬 파일 시스템에서 분기를 삭제합니다.

 $ git branch -d [name_of_your_new_branch]

파일 시스템에서 로컬 브랜치를 강제로 삭제하려면 다음을 수행하십시오.

 $ git branch -D [name_of_your_new_branch]

github에서 브랜치를 삭제하십시오.

 $ git push origin :[name_of_your_new_branch]

여기 모든 정보

기타 기존 프로젝트


Numan Turkeri

기존 브랜치에서 로컬 브랜치 생성(마스터/개발/모든 기타 브랜치 가능).

자식 체크 아웃 -b 분기 이름

이것을 원격으로 푸시

git push -u remote_name local_branch_name:remote_branch_name

여기,

  1. -u : 업스트림 분기를 설정합니다.
  2. remote_name : git은 저장소를 생성할 때 기본적으로 이름을 "origin"으로 설정합니다. 그러나 이것은 다른 임의의 이름으로 변경할 수 있습니다.
  3. local_branch_name : 푸시할 로컬 브랜치의 이름입니다.
  4. remote_branch_name : 원격에서 생성하려는 원격 브랜치의 이름입니다.

로컬 및 원격 분기 이름을 제거하면 다음 형식이 됩니다.

자식 푸시 -u 원격 이름 분기 이름

이렇게 하면 로컬 브랜치를 원격으로 푸시하고 로컬 브랜치 branch_name과 동일한 이름을 사용합니다. 로컬 지점은 원격 지점도 추적합니다.


iosCurator

이 질문에 대한 답변이 잘 되어 있다는 것을 알고 있지만 새 분기 "myNewBranch"를 만들고 원격(제 경우에는 "원점")으로 푸시하고 추적을 설정하기 위해 취하는 단계를 나열하고 싶었습니다. 이것을 "TL;DR"버전으로 생각하십시오 :)

 # create new branch and checkout that branch git checkout -b myNewBranch # now push branch to remote git push origin myNewBranch # set up the new branch to track remote branch from origin git branch --set-upstream-to=origin/myNewBranch myNewBranch

sufinawaz

이제 git을 사용하면 올바른 분기에 있을 때 입력하기만 하면 됩니다.

git push --set-upstream origin <remote-branch-name >

그리고 git create는 당신을 위해 오리진 브랜치를 만듭니다.


Maurizio Brioschi

그 동안 추가하고 싶었습니다.

 git checkout -b {branchName}

새 분기를 만들고 해당 분기도 확인합니다. / 현재 분기로 만듭니다. 어떤 이유로 분기를 잘라내고 현재 분기로 만들지 않으려는 경우 다음 명령을 사용합니다.

 git branch {branchName}

첫 번째 명령에서 "checkout"은 해당 분기를 현재 분기로 만들고 "-b"는 다음을 의미합니다. 이 분기는 아직 존재하지 않으므로 저를 위해 만드십시오.


Brian Sachetta

소스 트리를 통해 수행하는 방법

 1: Open SourceTree, click on Repository -> Checkout 2: Click on Create New Branch 3: Select the branch where you want to get code for new branch 4: Give your branch name 5: Push the branch (by click on Push-button)

Monis Majeed

git push -u <remote-name> <branch-name> 은 새로 생성된 브랜치가 동일한 repo에서 생성되지 않은 경우 작동하지 않습니다. 즉, git checkout -b new_branch 이것은 작동하지 않습니다.

예를 들어, 두 개의 다른 저장소를 로컬로 복제했고 repo2/branch1을 repo1/에 복사한 다음 그것도 푸시해야 했습니다.

링크는 내 로컬 브랜치(다른 리포지토리에서 복제)를 원격 리포지토리로 푸시하는 데 도움이 되었습니다.


brokenfoot

다음은 Egit을 통해 Eclipse에서 수행하는 방법입니다.

  1. "Git Repository Exploring" 보기로 이동하여 분기를 생성하려는 git 프로젝트를 확장합니다. Branches -> Local .. 아래에서 브랜치를 생성할 브랜치를 선택합니다. (제 경우에는 master ..를 선택했습니다. 원하는 경우 다른 브랜치를 선택할 수 있습니다.) .. 그런 다음 마우스 오른쪽 버튼을 클릭하고 Create Branch 옵션을 클릭합니다. 이 프로젝트 체크아웃 옵션을 선택한 다음 완료 버튼을 클릭합니다.

  2. 이제 프로젝트 탐색기에서 프로젝트 ..를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 팀 -> 푸시 분기를 클릭합니다.

새 원격 분기가 생성됩니다. 동료가 가져올 수 있도록 분기 이름을 지정할 수 있습니다.


user2225713

당신은 단순히 할 수 있습니다,

  1. git checkout -b YOUR-NEW-BRANCH-NAME
  2. git add .
  3. git push origin YOUR-NEW-BRANCH-NAME

관련 git repo 아래에 있는 코드로 브랜치를 볼 수 있습니다.

건배 !! :)


Janadari Ekanayaka

두 가지 방법을 사용하여 분기를 만들었습니다.

TortoiseGit을 사용하는 경우 다음 단계를 따르세요.

1.TortoiseGit을 사용하여 브랜치 생성

프로젝트를 마우스 오른쪽 버튼으로 클릭 >>> TortoiseGit >>> 브랜치 생성 >>> 브랜치 이름을 쓰고 기본 브랜치를 선택한 다음 확인을 누릅니다.

2. 가지를 밀다

프로젝트를 마우스 오른쪽 버튼으로 클릭 >>> TortoiseGit >>> 푸시 >>> 확인을 클릭하십시오.

3. 새 브랜치로 전환

프로젝트를 마우스 오른쪽 버튼으로 클릭 >>> TortoiseGit >>> Switch/Checkout >>> 새로 생성된 분기를 선택하고 확인을 누릅니다.

명령 프롬프트를 사용하는 경우 다음 단계를 따르십시오.

1. 명령 프롬프트를 사용하여 분기 만들기

$git 체크아웃 -b new_branch_name

2. 가지를 밀다

$git 푸시 출처 new_branch_name

3. 새 분기로 전환하면 이미 new_branch_name으로 전환됩니다. 그렇지 않으면 다음을 사용할 수 있습니다.

$git 체크아웃 new_branch_name


Mandeep Singh Gill

나는 이것을 사용하고 꽤 편리합니다.

 git config --global alias.mkdir '!git checkout -b $1; git status; git push -u origin $1; exit;'

사용법: git mkdir NEW_BRANCH

git 상태도 필요하지 않습니다. 아마도, 나는 모든 것이 잘 진행되고 있는지 확인하고 싶습니다 ...

단일 명령으로 LOCAL 및 REMOTE 분기를 모두 가질 수 있습니다.


Tarik

~/.profile 에 추가하여 이 문제를 해결했습니다.

function gitb() { git checkout -b $1 && git push --set-upstream origin $1; }

그런 다음 새 로컬 + 원격 분기를 시작하기 위해 다음과 같이 작성합니다.

gitb feature/mynewbranch

이 지점을 만들고뿐만 아니라 설치 추적에 최초의 푸시를 수행합니다 (그래서 나중에 그 git pullgit push 여분의 인수가없는 작업), 실제로 대상의 repo가 아직없는 거기에 같은 지점을 가지고 있음을 확인.


youurayy

다음은 로컬 첫 번째 분기인 origin 및 mobile-test 두 가지만 있는 예입니다.

원격 분기에 업데이트된 파일을 실제로 표시하기 위해 명령줄에서 이것을 사용할 때까지 아무 것도 작동하지 않았습니다.

 git push --set-upstream origin mobile-test

My Brain Hurts

--single-branch 를 사용하여 현재 분기를 복제한 경우 이를 사용하여 현재 분기에서 새 분기를 생성합니다.

 git checkout -b <new-branch-name> git push -u origin <new-branch-name> git remote set-branches origin --add <new-branch-name> git fetch

Ali Kleit

출처 : http:www.stackoverflow.com/questions/1519006/how-do-you-create-a-remote-git-branch

반응형