질문자 :Roni Yaniv
다음을 수행할 수 있기를 원합니다.
git branch
또는 git checkout -b
를 통해 다른 (원격 또는 로컬) 분기를 기반으로 로컬 분기를 만듭니다.
로컬 브랜치를 원격 저장소(게시)로 git pull
및 git push
가 즉시 작동하도록 추적 가능하게 만드십시오.
어떻게 해야 하나요?
--set-upstream
에 대해 알고 있지만 이는 생성 후 작업입니다. 브랜치를 원격 저장소로 푸시할 때 비슷한 변경을 하는 방법을 찾고 싶습니다.
답변자 : Daniel Ruoso
Git 1.7.0 이상에서는 새 분기를 체크아웃할 수 있습니다.
git checkout -b <branch>
파일을 편집하고 추가하고 커밋합니다. 그런 다음 -u
( --set-upstream
약자) 옵션 을 사용하여 푸시합니다.
git push -u origin <branch>
Git은 푸시 중에 추적 정보를 설정합니다.
답변자 : ErichBSchulz
다른 사람과 repo를 공유하지 않는 경우 모든 분기를 원격 --set-upstream
추적을 올바르게 수행하는 데 유용합니다.
git push --all -u
(OP가 요구한 것과 정확히 일치하지는 않지만 이 한 줄짜리는 꽤 인기가 있습니다)
repo를 다른 사람들과 공유하는 경우 모든 이상한 실험 브랜치로 repo를 막히기 때문에 이것은 정말 좋은 형태가 아닙니다.
답변자 : Lohrun
git push -u
가 도입되기 전에는 원하는 것을 얻을 수 있는 git push
옵션이 없었습니다. 새 구성 문을 추가해야 했습니다.
다음을 사용하여 새 분기를 만드는 경우:
$ git checkout -b branchB $ git push origin branchB:branchB
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
답변자 : piyushmandovra
간단히 말해서 새 로컬 분기를 만들려면 다음을 수행하십시오.
git branch <branch-name>
원격 저장소로 푸시하려면 다음을 수행하십시오.
git push -u origin <branch-name>
답변자 : bg17aw
여기에 이미 제공된 솔루션의 약간의 변형:
다른(원격 또는 로컬) 분기를 기반으로 로컬 분기를 만듭니다.
git checkout -b branchname
로컬 브랜치를 원격 저장소(게시)로 git pull
및 git push
가 즉시 작동하도록 추적 가능하게 만듭니다.
git push -u origin HEAD
HEAD
사용하는 것은 "현재 분기를 원격지의 동일한 이름으로 푸시하는 편리한 방법"입니다. 출처: https://git-scm.com/docs/git-push Git 용어로 HEAD(대문자)는 현재 분기(트리)의 상단에 대한 참조입니다.
-u
옵션은 --set-upstream
줄임말입니다. 이렇게 하면 현재 분기에 대한 업스트림 추적 참조가 추가됩니다. .git/config 파일에서 이를 확인할 수 있습니다.
답변자 : Arda
나는 단순히
git push -u origin localBranch:remoteBranchToBeCreated
이미 복제된 프로젝트를 통해
localBranch
커밋 아래에 remoteBranchToBeCreated
라는 새 분기를 만듭니다.
편집 : 이것은 현재 로컬 브랜치( localBranch
명명될 수 있음) 업스트림을 origin/remoteBranchToBeCreated
합니다. 이 문제를 해결하려면 다음을 입력하기만 하면 됩니다.
git branch --set-upstream-to=origin/localBranch
또는
git branch -u origin/localBranch
따라서 현재 로컬 분기는 이제 origin/localBranch
다시 추적합니다.
답변자 : VP.
다음과 같은 프로젝트를 이미 복제했다고 가정합니다.
git clone http://github.com/myproject.git
그런 다음 로컬 복사본에서 새 분기를 만들고 확인합니다.
git checkout -b <newbranch>
서버에서 "git bare --init"을 만들고 myapp.git을 만들었다고 가정하면 다음을 수행해야 합니다.
git remote add origin ssh://example.com/var/git/myapp.git git push origin master
그 후에 사용자는 다음을 수행할 수 있어야 합니다.
git clone http://example.com/var/git/myapp.git
참고: 서버가 가동되고 있다고 가정합니다. 그렇지 않으면 작동하지 않습니다. 좋은 방법이 여기에 있습니다 .
추가됨
원격 분기 추가:
git push origin master:new_feature_name
모든 것이 양호한지 확인합니다(원점 가져오기 및 원격 분기 나열):
git fetch origin git branch -r
로컬 분기를 만들고 원격 분기를 추적합니다.
git checkout -tb new_feature_name origin/new_feature_name
모두 업데이트:
git pull
답변자 : Tobias Kienzler
오래된 것을 편집하십시오. git push -u origin $BRANCHNAME
William의 기타 Git 도구 에서 git publish-branch
를 사용합니다.
OK, Ruby는 아니므로 보호 장치를 무시하십시오! - 스크립트의 마지막 세 줄을 사용하여 bash 스크립트 git-publish-branch
만듭니다.
#!/bin/bash REMOTE=$1 # Rewrite this to make it optional... BRANCH=$2 # Uncomment the following line to create BRANCH locally first #git checkout -b ${BRANCH} git push ${ORIGIN} ${BRANCH}:refs/heads/${BRANCH} && git config branch.${BRANCH}.remote ${REMOTE} && git config branch.${BRANCH}.merge refs/heads/${BRANCH}
그런 다음 git-publish-branch REMOTENAME BRANCHNAME
. 여기서 REMOTENAME은 일반적으로 원본입니다(원점을 기본값으로 사용하도록 스크립트를 수정할 수 있습니다...)
답변자 : cptjack
기존 브랜치에서 분기하여 새 브랜치를 생성하려면
git checkout -b <new_branch>
그런 다음 다음을 사용하여 이 새 분기를 저장소에 푸시합니다.
git push -u origin <new_branch>
이것은 모든 로컬 커밋을 생성하고 새로 생성된 원격 브랜치 origin/<new_branch>
답변자 : Fadid
1.7 이전 GitLab 버전의 경우 다음을 사용하십시오.
git checkout -b name_branch
(name_branch, 예: master
)
원격 저장소로 푸시하려면 다음을 수행하십시오.
git push -u origin name_new_branch
(name_new_branch, 예: feature
)
답변자 : Thuy Trinh
새 분기를 만들 때마다 그에 따라 원격 분기를 푸시하고 추적하도록 별칭을 만들었습니다. 다음 청크를 .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
thuy/do-sth-kool
과 함께 입력하면 새 브랜치 이름입니다.
답변자 : Javier C.
2단계로 할 수 있습니다.
1. checkout
을 사용하여 로컬 브랜치를 생성합니다.
git checkout -b yourBranchName
원하는 대로 지점과 함께 작업하세요.
2. push
명령을 사용하여 분기를 자동 생성하고 코드를 원격 리포지토리로 보냅니다.
git push -u origin yourBanchName
여러 가지 방법이 있지만 이 방법은 정말 간단하다고 생각합니다.
답변자 : Brad Parks
여기에 있는 답변을 바탕으로 이 프로세스를 간단한 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} eg 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} eg 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
답변자 : Eugene Yarmash
유연성을 최대화하기 위해 사용자 지정 Git 명령을 사용할 수 있습니다. 예를 들어 $PATH
git-publish
라는 이름으로 다음 Python 스크립트를 만들고 실행 가능하게 만드십시오.
#!/usr/bin/env python3 import argparse import subprocess import sys def publish(args): return subprocess.run(['git', 'push', '--set-upstream', args.remote, args.branch]).returncode def parse_args(): parser = argparse.ArgumentParser(description='Push and set upstream for a branch') parser.add_argument('-r', '--remote', default='origin', help="The remote name (default is 'origin')") parser.add_argument('-b', '--branch', help='The branch name (default is whatever HEAD is pointing to)', default='HEAD') return parser.parse_args() def main(): args = parse_args() return publish(args) if __name__ == '__main__': sys.exit(main())
그런 다음 git publish -h
사용 정보를 표시합니다.
usage: git-publish [-h] [-r REMOTE] [-b BRANCH] Push and set upstream for a branch optional arguments: -h, --help show this help message and exit -r REMOTE, --remote REMOTE The remote name (default is 'origin') -b BRANCH, --branch BRANCH The branch name (default is whatever HEAD is pointing to)
답변자 : Devin Rhode
이것이 가장 간단한 별칭이라고 생각합니다. ~/.gitconfig
[alias] publish-branch = !git push -u origin $(git rev-parse --abbrev-ref HEAD)
당신은 그냥 실행
git publish-branch
그리고 ... 분기를 게시합니다.
답변자 : Hitesh Sahu
로컬 변경 사항을 새 기능 분기로 푸시하기 위한 전체 Git 워크플로는 다음과 같습니다.
모든 원격 분기를 가져옵니다.
git pull --all
지금 모든 지점 나열
git branch -a
체크아웃 또는 브랜치 생성( <feature branch>
를 브랜치 이름으로 대체):
git checkout -b <feature branch>
현재 분기를 보여줍니다. * 앞에 표시해야 함
git branch
로컬 변경 사항을 추가하십시오(.는 여기에 의도된 것입니다).
git add .
이제 변경 사항을 커밋합니다.
git commit -m "Refactored/ Added Feature XYZ"
중요: 마스터에서 업데이트 받기:
git pull origin feature-branch
이제 로컬 변경 사항을 푸시합니다.
git push origin feature-branch
출처 : Here
출처 : http:www.stackoverflow.com/questions/2765421/how-do-i-push-a-new-local-branch-to-a-remote-git-repository-and-track-it-too">