2013-02-24 3 views
0

2 다른 자식을 나타내는 원격 추적 분기를 사용하지 않고도 Git 복제본을 서로 밀어 넣을 수 있습니까? 나는 그들이 대부분의 시간에 매우 유용하다는 것을 안다. 그러나 나는 때로는 보조 리포지토리 (내 베어 스 서버가 아닌)를 잡아 당기고 싶을 수도있다. 나는 물건을 어지럽히고 싶지 않다. 원격 추적 지점에 대해 신경 쓰지 않는다면 삭제되거나 생성되지 않을 수 있습니까?Git에서는 원격 추적 지점이 필요합니까?

답변

2

당신은 원격 지사의 로컬 지점 변경 내용 추적을 가지고 있지 의미 경우 :

당신은 당신의 가지가 원격 지점을 추적 할 필요는 없습니다. 그것은 당신이 가질 수없는 몇 가지 이점을 가지고있는 편의입니다; 예를 들어 git status과 같이 지점이 x가 원본보다 앞서 있음을 나타냅니다.

추적 분기를 설정해도 내가 리모컨을 사용할 수있는 것은 아닙니다. 리모컨은 URL을 입력하는 대신 모든 명령에서 계속 사용할 수 있습니다.

추적되는 분기를 보려면 git branch -avv을 사용하십시오. 원격 브랜치를 추적하는 모든 브랜치는 원격 브랜치를 커밋 해시의 왼쪽에 나열합니다.

지점을 삭제하고 추적하지 않고 다시 만드는 것 외에 다른 지점에서 추적을 제거하는 방법을 모르겠습니다.

당신은 (로 git branch -r 볼) 원격 지사의 로컬 복사본을 의미하는 경우 :

당신은 git branch -dr <remote/branch> 이러한 삭제할 수 있습니다 -하지만 다시 당신이 당기거나 그것을 가져 다음 번에 올 것이다. git fetch ...이 작동해야하며 git pull ...git fetch ...입니다. 매번 수동으로 삭제하거나 스크립팅해야합니다.

그러나 저장소에 실제 혼란이나 오버 헤드를 추가하지는 않습니다. 원격 추적 분기는 디스크에 커밋 해시가있는 파일입니다.커밋은 다른 위치에 저장되며, 아마도 커밋을 가져오고 싶거나, 하나 이상의 로컬 브랜치로 병합되거나 리베이스되었습니다.

이 정보는 원격 대신 URL을 사용하여 가져올 수 있습니다. 이것은 FETCH_HEAD 파일이 아닌 어디에서든지 페치 된 레코드를 작성하지 않습니다. 이 파일은 각 페치에 의해 무시되기 때문에 다른 페치가 수행되기 전에 로컬 브랜치에 병합되거나 리베이스되지 않으면 커밋 데이터가 손실됩니다. 원격 추적 지점은 가져온 데이터가 가비지 수집되지 않도록 유지합니다.

1

네, 리모컨을 추가하지 않고 쉽게 구현할 수 있습니다.

repos 사이를 밀거나 당기는 일반적인 방법은 git remote add NAME URL입니다. 그러나 이것은 편의성뿐 아니라 원격 추적 분기에도 필요합니다.

git pull REMOTE_NAME BRANCH을 사용하는 대신 git pull URL BRANCH을 사용하고 동일한 방식으로 끌어 오기를 사용할 수 있습니다. 기본적으로 대부분의 git 명령에서 URL을 원격 이름의 repo로 대체 할 수 있습니다.

+0

감사합니다. 정말 유용한 팁입니다. – user826840

2

원격 추적 분기가 필요하지 않습니다. 그것들은 단지 (a) git push 명령을 내리고 기본 동작을 가져오고 (b) git status 출력에서 ​​원격 명령과 대조하여 로컬 지점 상태에 대한 정보를받는 것이 편리합니다. Git으로 작업 할 필요가 없다.

나는 원격 추적 지점을 설정하는 것은 전혀 일을 복잡하게하지 않는

참고 일을 복잡하게하고 싶지 않다. 모든 작업은 로컬 저장소의 설정 파일에 세 줄을 추가하는 것입니다. 다른 일은하지 않습니다. git status 동안의 모든 추가 정보는 명령이 실행될 때만 생성됩니다. 아무것도 저장되지 않거나 그렇지 않으면 혼란 스럽습니다. 따라서 원격 추적 지점을 필요로하지 않더라도 원격 추적 지점을 설정하는 것이 일반적으로 문제가되지 않습니다.

관련 문제