로컬 브랜치를 GIT에서 다른 접두사를 가진 원격 분기에 매핑 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/167697

  •  03-07-2019
  •  | 
  •  

문제

우리는 내가 일하는 곳에서 반 중부 git 저장소와 함께 일하고 있습니다. 각 개발자는 Central Git 저장소에 자체 하위 트리가 있으므로 다음과 같은 것 같습니다.

master
alice/branch1
alice/branch2
bob/branch1
michael/feature
release/1.0
release/1.1

내 나무에서 현지에서 일하고 있습니다 topic/feature, 이는에 해당합니다 michael/feature 중앙 나무에서.

나는 사용하고있다

git push origin topic/feature:michael/feature

내 변경을 원격 트리로 밀어 넣습니다. 그러나 이것은 번거롭고 실수가 발생하기 쉽습니다 (예 : 개발자 이름을 생략하고 기능 이름을 철회하는 등).

나는 이것을 할 수있는 더 깨끗한 방법을 찾고 있습니다. 예를 들어, "git push". 수정 된 Fetch RefSpec으로 다른 리모컨을 설정하면 정확히 어떻게 해야하는지 잘 모르겠습니다. 또한 다른 리모컨을 사용하기 위해 현재 지점 정의를 수정하는 방법도 잘 모르겠습니다.

내 현재 .git/config 다음과 같은 것 같습니다.

[remote "origin"]
    url = git://central/git/project
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "topic/feature"]
    remote = origin
    merge = refs/heads/michael/project

편집하다: 또한 이것을 당기기/페치에 적용하고 싶습니다. 그러나 branch.<name>.merge 그것을 돌봐?

나는 이것을 계속 연구하고 무언가를 찾으면 여기에 게시 할 것입니다. 그러나 나는 다른 좋은 아이디어를 얻기를 바라고 있습니다.

편집 2 : 나는 로컬 및 원격 지점 이름을 동일하게 유지하겠다고 결정했습니다. 그것은 최소한의 작업이며 미래의 문제가 가장 적은 것으로 보입니다.

도움이 되었습니까?

해결책

가능하다면, 동일한 지점 이름을 로컬 및 원격으로 사용하는 것이 좋습니다. 그 다음에 git push 모든 지역 지점을 중앙 저장소의 해당 지점으로 밀어 넣습니다.

로컬 및 원격 저장소에서 다른 접두사를 사용하려면 새 기능 분기를 만들 때마다 구성 파일에 매핑을 추가해야합니다. Topic/Branch_name에 대한 매핑을 설정하라는 명령은 다음과 같습니다.

 git config remote.origin.push refs/heads/topic/BRANCH_NAME:michael/BRANCH_NAME

다른 팁

원격 "원산지"] 섹션에서 매핑 당 한 줄을 추가하십시오. 마스터 마스터를 포함하여.

push = refs/heads/master:master
push = refs/heads/topic/feature:michael/feature

git-config 명령으로 어떻게 해야할지 잘 모르겠습니다.

지금부터 모든 지점은 직선 git 푸시 (매개 변수가 없음)를 할 때 동일하게 밀려납니다.

왜 같은 지점 이름을 로컬로 그리고 원격으로 유지하지 않는지 설명 하시겠습니까?

지점을 다음과 같이 리모컨의 다른 추적 브랜치에 매핑 할 수 있습니다.

git remote add heroku git@heroku.com:YOURAPPNAME.git
git checkout -b heroku -t heroku/master

구성은 @paul이 제안한 것과 비슷합니다 (실제로 "더 간단한").

나에게 잘 맞는 사용 단계에 대해서는이 요점을보십시오 (저의 조정) https://gist.github.com/2002048.

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