이란 - git 브랜치 가져오기




새 로컬 브랜치를 원격 Git 저장소로 푸시하고 추적하는 방법은 무엇입니까? (9)

Git 1.7.0 이상에서는 체크섬을 사용하여 새 분기를 만들 수 있습니다.

git checkout -b <branch>

파일 편집, 추가 및 커밋. 그런 다음 -u ( --set-upstream ) 옵션 을 사용하여 밀어 넣으십시오 .

git push -u origin <branch>

Git은 푸시 중에 추적 정보를 설정합니다.

나는 다음을 할 수 있기를 바란다.

  1. 다른 (원격 또는 로컬) 브랜치를 기반으로 로컬 브랜치를 생성한다 ( git branch 또는 git checkout -b )

  2. 로컬 저장소를 원격 저장소 (게시)로 git push 하지만 추적 가능하도록 설정하면 git pullgit push 가 즉시 작동합니다.

어떻게해야합니까?

나는 Git 1.7의 --set-upstream 에 대해 알고있다. 그러나 그것은 포스트 생성 액션이다. 브랜치를 원격 저장소로 푸시 할 때 유사한 변경을 수행하는 방법을 찾고 싶습니다.


GitLab 1.7 이전 버전의 경우 다음을 사용하십시오.

git checkout -b name_branch

(name_branch, 예 : 마스터)

원격 저장소로 푸시하려면 다음을 수행하십시오.

git push -u origin name_new_branch

(name_new_branch, 예 : 기능)


간단히 말해, 새로운 로컬 브랜치를 생성하려면 다음과 같이하십시오.

git branch <branch-name>

원격 저장소로 푸시하려면 다음을 수행하십시오.

git push -u origin <branch-name>

공개 저장소의 로컬 지점을 업로드하려면 공개 저장소에 cd 하고 다음 코드를 사용해야합니다.

git push -u origin branchname

기존 분기에서 분기하여 새 분기를 만들려면

git checkout -b <new_branch>

그런 다음이 새 분기를 저장소를 사용하여 저장소로 푸시합니다.

git push -u origin <new_branch>

이렇게하면 모든 로컬 커밋이 새로 생성 된 원격 분기 origin/<new_branch> 만들어지고 푸시됩니다.


나는 간단히

git push -u origin localBranch:remoteBranchToBeCreated

이미 복제 된 프로젝트 이상.

Git은 localBranch 에서 localBranch 커밋 아래에 remoteBranchToBeCreated 라는 새 분기를 만듭니다.


별칭을 만들었으므로 새 분기를 만들 때마다 그에 따라 원격 분기를 밀고 추적합니다. 다음 청크를 .bash_profile 파일에 넣습니다.

# Create a new branch, push to origin and track that remote branch
publishBranch() {
  git checkout -b $1
  git push -u origin $1
}
alias gcb=publishBranch

사용법 : gcb thuy/do-sth-kool 을 입력 gcb thuy/do-sth-kool 내 새 지점 이름이됩니다.


약간의 답을 작성하면서이 프로세스를 간단한 Bash 스크립트로 마무리했습니다. 물론 Git 별칭으로도 사용할 수 있습니다.

중요한 것은 나에게 이것은 커밋 전에 유닛 테스트를 실행하고 현재 브랜치 이름을 기본값으로 전달한다는 것이다.

$ git_push_new_branch.sh

  Have you run your unit tests yet? If so, pass OK or a branch name, and try again

  usage: git_push_new_branch {OK|BRANCH_NAME}

  e.g.

  git_push_new_branch           -> Displays prompt reminding you to run unit tests
  git_push_new_branch OK        -> Pushes the current branch as a new branch to the origin
  git_push_new_branch MYBRANCH  -> Pushes branch MYBRANCH as a new branch to the origin

git_push_new_branch.sh

function show_help()
{
  IT=$(CAT <<EOF

  Have you run your unit tests yet? If so, pass OK or a branch name, and try again

  usage: git_push_new_branch {OK|BRANCH_NAME}

  e.g.

  git_push_new_branch.sh           -> Displays prompt reminding you to run unit tests
  git_push_new_branch.sh OK        -> Pushes the current branch as a new branch to the origin
  git_push_new_branch.sh MYBRANCH  -> Pushes branch MYBRANCH as a new branch to the origin

  )
  echo "$IT"
  exit
}

if [ -z "$1" ]
then
  show_help
fi

CURR_BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [ "$1" == "OK" ]
then
  BRANCH=$CURR_BRANCH
else
  BRANCH=${1:-$CURR_BRANCH}
fi

git push -u origin $BRANCH

git push -u 가 출시되기 전에는 원하는 것을 얻기위한 git push 옵션이 없었습니다. 새로운 구성 문을 추가해야했습니다.

다음을 사용하여 새 분기를 만드는 경우 :

$ git checkout -b branchB
$ git push origin branchB:branchB

git config 명령을 사용하면 .git/config 파일을 직접 편집하지 .git/config 됩니다.

$ git config branch.branchB.remote origin
$ git config branch.branchB.merge refs/heads/branchB

또는 .git/config 파일을 수동으로 편집하여이 분기에 대한 정보를 추적 할 수 있습니다.

[branch "branchB"]
    remote = origin
    merge = refs/heads/branchB




git-push