카테고리 보관물: Git

Git

원격 Git 브랜치를 어떻게 생성합니까? 만든 원격 분기를 추적하는 방법에 대한 비슷한

업스트림 ‘푸시’하려는 로컬 브랜치를 만들었습니다. 스택 오버플로에서 새로 만든 원격 분기를 추적하는 방법에 대한 비슷한 질문이 있습니다.

그러나 내 워크 플로는 약간 다릅니다. 먼저 로컬 지점을 만들고 싶습니다. 만족스럽고 지점을 공유하고 싶을 때만 업스트림을 푸시합니다.

  • 어떻게해야합니까? (내 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>

where <remote-name>는 일반적으로 origingit이 복제 한 리모컨에 부여하는 이름입니다. 그런 다음 동료는 해당 지점을 당기면 로컬로 자동 생성됩니다.

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

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) 및 기타 명령에서 사용하는 업스트림 (추적) 참조를 추가하십시오.


답변

먼저 지점을 로컬로 만들어야합니다

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

답변

간단한 Git 2.0 이상 솔루션 :

현재 망할 놈의 2.0 동작은 간단되었다 :

push.default = current인생을 더 쉽게하기 위해 git을 구성 할 수 있습니다 :

나는 이것을 추가하여 이제 새로운 브랜치를 업스트림으로 밀어 넣을 수 있습니다.

$ git push -u

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

push.default

참조 스펙이 명시 적으로 지정되지 않은 경우 git push가 수행 할 조치를 정의합니다.

push.default = current-현재 분기를 눌러 수신 측에서 동일한 이름의 분기를 업데이트하십시오. 중앙 및 비 중앙 워크 플로 모두에서 작동합니다.

나에게 이것은 일상적인 Git 워크 플로를 단순화 한 것입니다. 구성 설정은 지점을 로컬로 추가하고 원격으로 생성하려는 ‘일반적인’사용 사례를 처리합니다. 또한 git co remote_branch_name( --set-upstream-to플래그 를 사용 하는 것과 달리) 그냥 원격으로 로컬 브랜치를 만들 수 있습니다 .

이 질문에 대해 잘 알고 있으며 대답은 다소 오래되었지만 동작이 변경되어 이제 작업 과정을 단순화하기 위해 구성 옵션이 존재합니다.

전역 Git 구성에 추가하려면 명령 행에서 다음을 실행하십시오.

$ git config --global push.default current

답변

이전 답변에서 언급했듯이

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

지역 지점을 추진하기에 충분합니다.

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

git remote update

그런 다음 지점에서 변경하려면 일반적인 흐름을 수행하십시오.

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

답변

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

git checkout -b newbranch

평소대로 변경 사항을 적용하십시오. 그런 다음 상류로 밀어 넣으십시오.

git push -u origin HEAD

이것은 현재 브랜치를 같은 이름의 브랜치로 푸시 origin하고 추적 origin HEAD하여 나중에 지정할 필요가 없도록 하는 지름길 입니다.


답변

현재 브랜치에서 브랜치를 만들려면

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

또는 원격 지점에서 지점을 만들려면 개발 이라고 말하십시오.

자식 체크 아웃 -b bug_fixes origin / development

다음을 통해 지점으로 원격 리포지토리로 푸시 할 수 있습니다.

git push -u origin bug_fixes

언제든지 다른 지점에서 master 라고하는 지점을 업데이트하려고합니다 .

git pull origin master.


답변

실제로 로컬 브랜치를 가지지 않고 원격 브랜치를 만들려면 다음과 같이 할 수 있습니다.

git push origin HEAD:refs/heads/foo

리모컨에 존재하지 않는 foo 분기로 HEAD가 무엇이든 푸시합니다 .