문제

나는 상류를 '밀기'하고 싶은 현지 지점을 만들었습니다. 새로 생성 된 원격 브랜치를 추적하는 방법에 대한 Stack Overflow에 비슷한 질문이 있습니다.

그러나 내 워크 플로는 약간 다릅니다. 첫 번째 나는 로컬 브랜치를 만들고 싶고 만족하고 지점을 공유하고 싶을 때만 상류로 밀어 넣을 것입니다.

  • 어떻게할까요? (내 Google 검색은 아무것도 생각하지 못한 것 같습니다).
  • 동료들에게 상류 저장소에서 그것을 가져 오라고 어떻게 말합니까?

GIT 2.0으로 업데이트 대답이 더 간단합니다 아래에 다음과 같이 썼습니다. https://stackoverflow.com/a/27185855/109305

도움이 되었습니까?

해결책 3

간단한 GIT 2.0+ 솔루션 :

현재 Git 2.0 동작이 더 간단 해졌습니다:

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

나는 이것을 추가하여 이제 새로운 지점을 상류로 밀 수 있습니다.

$ git push -u

-u 같은 이름의 원격 브랜치를 추적합니다. 이제이 구성을 사용하면 GIT 푸시에 대한 원격 참조를 자동으로 추측합니다. 에서 git.config 문서:

push.default

RefSpec이 명시 적으로 제공되지 않으면 조치 GIT 푸시가 취해야하는 조치를 정의합니다.

push.default = current - 현재 지점을 푸시하여 수신 끝에 동일한 이름의 지점을 업데이트하십시오. 중앙 및 비 중앙 워크 플로에서 작동합니다.

저에게 이것은 일상적인 GIT 워크 플로를 잘 단순화 한 것입니다. 구성 설정은 분기를 로컬로 추가하고 원격으로 만들려는 '일반적인'유스 케이스를 처리합니다. 또한, 나는 그냥 할 수 있도록 리모컨에서 현지 지점을 쉽게 만들 수 있습니다. git co remote_branch_name (사용과 반대로 --set-upstream-to 깃발).

나는이 질문과 허용 된 답변이 다소 오래되었지만 동작이 변경되어 이제 구성 옵션이 워크 플로우를 더 간단하게 만들 수 있도록 존재합니다.

글로벌 git 구성에 추가하려면 명령 줄 에서이 작업을 실행하십시오.

$ git config --global push.default current

다른 팁

먼저, 당신은 로컬로 분기를 만듭니다.

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) 및 기타 명령에 의해 사용되는 상류 (추적) 참조를 추가하십시오.

먼저, 지점을 현지에서 만들어야합니다

git checkout -b your_branch

그런 다음 지점에서 로컬로 일할 수 있습니다. 지점을 공유 할 준비가되면 밀어 넣을 수 있습니다. 다음 명령은 분기를 원격 저장소 원점으로 밀고 추적합니다.

git push -u origin your_branch

팀원들은 다음을 통해 지점에 도착할 수 있습니다.

git fetch
git checkout origin/your_branch

당신은 지점에서 계속 일하고 git push에 인수를 전달하지 않고 원할 때마다 밀어 넣을 수 있습니다 (Argumentless 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 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'

원격 repo로 밀고 싶을 때

git push -u origin <your_local_branch_name>

모두 함께 할 것입니다

git checkout -b bug_fixes 

또는 원격 지점에서 지점을 만들고 싶다면 개발

git 체크 아웃 -B 버그 수정 기원/개발

당신은 지점으로 푸시하여 원격 repo로 푸시 할 수 있습니다.

git push -u origin bug_fixes

다른 지점에서 지점을 업데이트하고 싶을 때마다 주인.

git pull origin master.

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

git push origin HEAD:refs/heads/foo

그것은 당신의 머리를 가지로 밀어 넣습니다 foo 리모컨에는 존재하지 않았습니다.

가장 쉬운 솔루션 ... 드럼 롤 ... 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

NB- 지역 환경에서 방금 만든 지점과 밀고 자하는 원격 비 존재 지점, 동일한 이름이 있어야합니다.

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

git checkout -b your_branch

그런 다음 원격으로 분기를 만듭니다.

git push --set-upstream origin your_branch

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

$ git --version
git version 2.3.0

건배!

로컬 컴퓨터의 분기를 만들고이 분기에서 스위치하십시오.

$ 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]

여기 모든 정보

기타 기존 프로젝트

기존 지점에서 로컬 브랜치 생성 (마스터/ 개발/ 모든 자본이 될 수 있음).

git checkout -b branch_name

이것을 리모컨으로 밀어 넣으십시오

git push -u remote_name local_branch_name : remote_branch_name

여기,

  1. -U : 상류 분기를 설정합니다
  2. remote_name : git은 기본적으로 저장소를 생성 할 때 기본적으로 이름을 "원점"으로 설정합니다. 그러나 이것은 다른 임의의 이름으로 변경할 수 있습니다.
  3. local_branch_name : 로컬 브랜치의 이름이 푸시됩니다.
  4. Remote_branch_name : 리모컨에서 만들고 싶은 원격 브랜치의 이름입니다.

로컬 및 원격 브랜치 이름을 제거하면 형식이 있습니다.

git push -u remote_name branch_name

이렇게하면 로컬 브랜치를 리모컨으로 그리고 로컬 브랜치 _name과 동일한 이름으로 밀어냅니다. 로컬 브랜치도 원격 지점을 추적 할 것입니다.

나는이 질문이 잘 답변되어 있다는 것을 알고 있지만, 새로운 지점을 만들기 위해 취하는 단계를 나열하고 원격 (나의 경우 원산지”로 푸시하고 추적을 설정하고 싶었습니다. 이것을 "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

이제 git을 사용하면 올바른 지점에있을 때 입력 할 수 있습니다.

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

그리고 git은 당신을 위해 원산지 지점을 만듭니다.

그냥 추가하고 싶었습니다.

git checkout -b {branchName}

새 지점을 만들고, 또한 지점을 확인 / 현재 지점으로 만듭니다. 어떤 이유로 든, 당신이 원하는 것은 분기에서 스냅하지만 현재 지점으로 만들지 않는다면 다음 명령을 사용합니다.

git branch {branchName}

첫 번째 명령에서 "Checkout"은 현재 분기를 현재 지점으로 만들고 "-B"는 다음을 의미합니다.이 분기는 아직 존재하지 않으므로 저를 위해 만들 수 있습니다.

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

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

git push -u <remote-name> <branch-name> 새로 생성 된 지점이 동일한 repo에서 스폰되지 않은 경우 작동하지 않습니다. 즉, 새 지점을 사용하지 않은 경우 git checkout -b new_branch, 그러면 이것은 작동하지 않습니다.

예를 들어, 나는 두 개의 다른 리포지토리를 로컬로 복제했으며 repo2/ branch1을 Repo1/에 복사 한 다음 밀어야했습니다.

이것 Link는 내 지역 지점 (다른 리포지토리에서 클로닝)을 원격 저장소로 밀어 넣었습니다.

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

1) "git 리포지토리 탐색"을 방문하여 지점을 만들고 싶은 Git 프로젝트를보고하십시오. Brances-> Local .. 지점을 만들려는 분기를 선택하십시오 (내 경우 마스터를 선택한 경우 .. 원하는 경우 다른 지점을 선택할 수 있습니다) .. 마우스 오른쪽 버튼을 클릭하고 분기 생성 옵션을 클릭하십시오. 이 프로젝트 옵션을 선택한 다음 완료 버튼을 클릭하십시오.

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

새로운 원격 브랜치가 만들어집니다. 지점의 이름을 동료에게 줄 수 있도록 지점의 이름을 줄 수 있습니다.

나는 이것을 사용하고 그것은 꽤 편리하다 :

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

사용법 : git mkdir new_branch

당신은 git 상태조차 필요하지 않습니다. 어쩌면 모든 것이 잘 진행되고 있는지 확인하고 싶을 수도 있습니다 ...

단일 명령으로 로컬 및 원격 브랜치를 모두 가질 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top