원산지/마스터릿 위치는 어떻게 찾고 변경은 어떻게 하나요?
저는 Git newbie입니다.최근에 레일즈 프로젝트를 서브버전에서 깃으로 옮겼습니다.저는 여기서 튜토리얼을 따랐습니다: http://www.simplisticcomplexity.com/2008/03/05/cleanly-migrate-your-subversion-repository-to-a-git-repository/
저는 또한 unfuddle.com 을 사용하여 제 코드를 저장하고 있습니다.통근/퇴근 열차에서 Mac 노트북을 변경한 후 다음 명령을 사용하여 네트워크에 연결되어 있을 때 풀도록 합니다.
git push unfuddle master
배포에 Capistrano를 사용하고 마스터 브랜치를 사용하여 풀 저장소에서 코드를 끌어옵니다.
최근에 랩톱에서 "git status"를 실행할 때 다음 메시지가 표시되었습니다.
# On branch master
# Your branch is ahead of 'origin/master' by 11 commits.
#
nothing to commit (working directory clean)
그리고 왜 그런지 헷갈립니다.제 노트북이 기원인 줄 알았는데요...하지만 제가 원래 Subversion에서 철수했거나 Unfuddle로 이동한 사실이 메시지를 표시하는 원인인지는 모르겠습니다.어떻게 해야 합니까?
- Git가 생각하는 '원산지/마스터'가 어디에 있는지 알아보세요.
- 다른 곳에 있는 경우 노트북을 어떻게 '오리진/마스터'로 전환합니까?
- 이 메시지를 가져가세요.그것은 Git가 무언가에 대해 불행하다고 생각하게 만듭니다.
내 맥은 Git 버전 1.6.0.1을 실행하고 있습니다.
가 행할때실을 할 때.git remote show origin
처럼, 저는 과 같은것을 : dbr이 제것처럼얻습, 저는다을니다음안.
~/Projects/GeekFor/geekfor 10:47 AM $ git remote show origin
fatal: '/Users/brian/Projects/GeekFor/gf/.git': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly
가 행할때실을 할 때.git remote -v
아리스토텔레스 파갈치스가 제안한 바와 같이, 저는 다음과 같은 것을 얻습니다.
~/Projects/GeekFor/geekfor 10:33 AM $ git remote -v
origin /Users/brian/Projects/GeekFor/gf/.git
unfuddle git@spilth.unfuddle.com:spilth/geekfor.git
흥미롭게도, 저는 지금 제 프로젝트를 진행하고 있습니다.geekfor
디렉토리에는 내 발신지가 로컬 컴퓨터라고 나와 있습니다.gf
디렉토리입니다.는 어요믿을 믿습니다.gf
Subversion에서 Git로 프로젝트를 변환할 때 사용한 임시 디렉터리이며 아마도 풀려고 했던 곳일 것입니다.그럼 제가 언퍼들에서 새로운 복사본을 확인한 것 같습니다.geekfor
디렉토리입니다.
그래서 저는 dbr의 조언에 따라 다음을 수행해야 할 것 같습니다.
git remote rm origin
git remote add origin git@spilth.unfuddle.com:spilth/geekfor.git
저는 "당신의 지점이 앞서가고 있습니다..."라는 메시지가 무엇인지 설명하기 위해 이 질문을 하게 되었습니다.평균, 일반적인 git 체계에서.여기서는 그에 대한 답이 없었지만, 현재 "당신의 지점이 '오리진/마스터'보다 앞서 있습니다"라는 문구를 검색할 때 이 질문이 구글 상단에 표시되기 때문에, 그 이후로 메시지의 진정한 의미가 무엇인지 알게 되었고, 여기에 정보를 게시하려고 생각했습니다.
그래서, 저는 기트 초보자로서, 제가 필요로 하는 답은 분명히 새로운 답이었다는 것을 알 수 있습니다.구체적으로, "당신의 지점이 앞서고 있는 것은...구문은 로컬 리포지토리에 추가하고 커밋했지만 원본으로 푸시한 적이 없는 파일이 있음을 의미합니다.이 메시지의 의도는 적어도 저에게는 "git diff"가 차이를 보이지 않았다는 사실로 인해 더욱 혼란스럽습니다."gitdiff origin/master"를 실행하고 나서야 로컬 리포지토리와 원격 마스터 간에 차이점이 있다는 말을 들었습니다.
그래서, 분명히 하자면:
"당신의 지부가 앞서 있습니다."=> 원격 마스터에 푸시해야 합니다."gitdiff origin/master"를 실행하여 로컬 리포지토리와 원격 마스터 리포지토리의 차이점을 확인합니다.
이것이 다른 신입들에게 도움이 되기를 바랍니다.
또한 마스터가 실제로 "원격"이 아닐 수도 있고 "원격"이 규약 등에서 사용하는 재구성 가능한 이름이라는 점과 같이 이 솔루션을 부분적으로 무효화할 수 있는 구성 세부 사항이 있다는 점도 알고 있습니다.하지만 초보자들은 그런 것에 신경 쓰지 않습니다.우리는 간단하고 솔직한 대답을 원합니다.시급한 문제를 해결한 후에 세부 사항에 대해 나중에 읽을 수 있습니다.)
얼
1.
Git가 생각하는 '오리진/마스터'의 사용처 확인
git remote show origin
..그것은 무언가를 돌려줄 것입니다.
* remote origin
URL: me@remote.example.com:~/something.git
Remote branch merged with 'git pull' while on branch master
master
Tracked remote branch
master
원격은 기본적으로 원격 저장소에 대한 링크입니다.그럴 때면..
git remote add unfuddle me@unfuddle.com/myrepo.git
git push unfuddle
..git는 추가한 주소로 변경사항을 푸시합니다.원격 저장소를 위한 책갈피와 같습니다.
을 할 때git status
원격에 누락된 커밋이 있는지(로컬 리포지토리에 포함), 누락된 경우 커밋 수를 확인합니다.모든 변경사항을 "원본"으로 푸시하면 두 변경사항이 모두 동기화되므로 메시지가 표시되지 않습니다.
2.
다른 곳에 있는 경우 노트북을 어떻게 '오리진/마스터'로 전환합니까?
이것을 하는 것은 의미가 없습니다."오리진"이 "노트북"으로 이름이 바뀌었다고 칩니다. 절대 원하지 않습니다.git push laptop
노트북에서 다운로드할 수 있습니다.
오리진 리모컨을 제거하려면...
git remote rm origin
이렇게 하면 파일 내용/리비전 기록 측면에서 아무것도 삭제되지 않습니다.이렇게 하면 "지점이 앞섰습니다..."가 중지됩니다.메시지(리모트가 사라졌기 때문에 더 이상 저장소를 원격과 비교하지 않습니다.
한 가지 기억해야 할 것은 특별한 것이 없다는 것입니다.origin
그것은 단지 git가 사용하는 기본 이름일 뿐입니다.
는 Git는사다니합용▁g를 합니다.origin
같은 일을 할 때는 기본적으로 할 수 있습니다.git push
또는git pull
따라서 자주 사용하는 리모컨이 있다면(당신의 경우에는 unfudle) unfudle을 "origin"으로 추가하는 것이 좋습니다.
git remote rm origin
git remote add origin git@subdomain.unfuddle.com:subdomain/abbreviation.git
또는 set-url을 사용하여 하나의 명령으로 위의 작업을 수행합니다.
git remote set-url origin git@subdomain.unfuddle.com:subdomain/abbreviation.git
그러면 간단하게 할 수 있습니다.git push
또는git pull
업트하기 신대데를 합니다.git push unfuddle master
작업 디렉토리가 있는 곳과 유사한 문제가 있었습니다.ahead of origin by X commits
러나그나git pull
결과적으로Everything up-to-date
저는 이 충고를 따라 겨우 그것을 고쳤습니다.비슷한 문제를 가진 다른 사람에게 도움이 될까봐 이 글을 올립니다.
기본 해결 방법은 다음과 같습니다.
$ git push {remote} {localbranch}:{remotebranch}
괄호 안의 단어를 원격 이름, 로컬 지점 이름 및 원격 지점 이름으로 대체해야 합니다. 예를 들어,
$ git push origin master:master
로컬 캐시된 오리진 마스터 버전(오리지널/마스터)과 실제 오리진 마스터 사이에 차이가 있을 수 있습니다.
실행하는 경우git remote update
를 다시 합니다.
이 질문에 대한 일반적인 답변을 봅니다.
git pull origin 마스터와 git pull origin/master 간의 차이
저는 제 노트북이 기원이라고 생각했습니다.
말도 안 되는 소리야: 그건좀말안되소는리야도▁that소리야되는.origin
일반적으로 다른 사용자의 변경사항을 가져오거나 가져오는 기본 원격 리포지토리를 말합니다.
어떻게 해야 합니까?
git remote -v
당신에게 무엇을 보여줄 것입니다.origin
is;origin/master
한 "자용다니"의 당신의 "bookmark입니다.master
의origin
및 자신의 저장소master
에 대한 추적 분기입니다.origin/master
이 모든 것이 당연한 것입니다.당신은 모릅니다.적어도 리포지토리가 기본 원격 리포지토리라는 것은 의미가 없습니다.
아닙니다.즉, 원격 저장소에 없는 커밋을 로컬로 너무 많이 수행했다는 것입니다(해당 저장소의 마지막 알려진 상태에 따름).
[ 솔루션 ]
$ git push origin
이것으로 해결되었습니다.노트북의 마스터를 원격 서버의 "원본"과 동기화했습니다.
저는 이 문제로 어려움을 겪고 있으며 제가 보기에 그 질문에 대한 이전 답변은 없습니다.저는 제 문제를 분명히 할 수 있는지 알아보기 위해 문제를 다시 원래대로 되돌렸습니다.
새 리포지토리(rep1)를 만들고 파일 하나를 넣고 커밋합니다.
mkdir rep1
cd rep1
git init
echo "Line1" > README
git add README
git commit -m "Commit 1"
rep1의 복제본을 생성하여 rep2라고 부릅니다.rep2 내부를 보니 파일이 정확합니다.
cd ~
git clone ~/rep1 rep2
cat ~/rep2/README
rep1에서 파일을 한 번 변경하고 커밋합니다.그런 다음 rep1에서 rep2를 가리키는 리모컨을 만들고 변경사항을 푸시합니다.
cd ~/rep1
<change file and commit>
git remote add rep2 ~/rep2
git push rep2 master
이제 제가 rep2에 들어가서 'git status'를 할 때 저는 제가 출발지보다 앞서 있다는 말을 듣습니다.
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README
#
rep2의 README는 두 번째 커밋 이전의 원래 상태입니다.제가 한 유일한 수정 사항은 rep1이고 제가 하고 싶었던 것은 rep2로 밀어내는 것입니다.내가 이해하지 못하는 것은 무엇입니까?
당신이 "밀어내기"를 기다리고 있습니다.시도:
$ git push
최근에 이런 문제가 있었는데 더 이상 필요하지 않은 파일을 삭제했기 때문이라고 생각했습니다.문제는 git이 파일이 삭제된 것을 모르고 서버에 아직 파일이 남아 있는 것으로 보인다는 것입니다. (server = origin)
그래서 뛰었습니다.
git rm $(git ls-files --deleted)
그리고 나서 커밋과 푸시를 실행했습니다.
그것으로 문제가 해결되었습니다.
저도 풋내기예요.'당신의 브랜치가 N 커밋으로 오리진/마스터보다 앞섰습니다' 메시지에서도 같은 문제가 있었습니다.제안된 'git diff origin/master'를 수행하면 유지하고 싶지 않은 몇 가지 문제가 나타납니다.그래서...
Git 클론이 호스팅용이었고 마스터 repo의 정확한 복사본을 원했고 로컬 변경 사항을 유지하는 것에 관심이 없었기 때문에 전체 repo를 저장하고 새 repo를 만들기로 결정했습니다.
(호스트 시스템)
mv myrepo myrepo
git clone USER@MASTER_HOST:/REPO_DIR myrepo
편의를 위해 호스팅 시스템의 복제본을 변경하곤 했습니다.이제 그만.마스터에 변경 사항을 적용하고, 거기에 커밋한 다음, 당기기를 수행합니다.이렇게 하면 호스팅 시스템의 Git 클론이 완전히 동기화될 수 있기를 바랍니다.
/나라
저도 제 레포에 대해 같은 것이 궁금했습니다.제 경우에는 더 이상 누르지 않는 오래된 리모컨이 있어서 제거해야 했습니다.
원격 목록 가져오기:
git remote
필요 없는 항목 제거
git remote rm {insert remote to remove}
사용자 자신의 커밋이 수행되기 전에 특정 커밋으로 재설정할 수 있습니다.
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
nothing to commit (working directory clean)
사용하다git log
로컬 변경이 발생하기 전에 수행한 커밋이 무엇인지 확인합니다.
$ git log
commit 3368e1c5b8a47135a34169c885e8dd5ba01af5bb
...
commit baf8d5e7da9e41fcd37d63ae9483ee0b10bfac8e
...
로컬 커밋을 기록하고 이전 커밋으로 직접 재설정합니다.
git reset --hard baf8d5e7da9e41fcd37d63ae9483ee0b10bfac8e
다음을 사용하여 원격 저장소에 푸시했을 때 "지점이 nn 커밋에서 '오리진/마스터'보다 앞서 있습니다."라는 문제가 발생했습니다.
git push ssh://git@xxx.repositryhosting.com/yyy/zzz.git
원격 주소가 .git/FETCH_HEAD 파일에 있고 다음을 사용하는 것을 발견했을 때:
git push
문제가 사라졌습니다.
언급URL : https://stackoverflow.com/questions/277077/how-can-i-find-the-location-of-origin-master-in-git-and-how-do-i-change-it
'programing' 카테고리의 다른 글
ASP.NET Development Server 대신 IIS에 디버거를 연결하려면 어떻게 해야 합니까? (0) | 2023.07.16 |
---|---|
메모리 누수 C++ (0) | 2023.07.16 |
정수(0)를 잡는 방법은? (0) | 2023.07.16 |
data.tables의 X[Y] join이 전체 외부 join 또는 왼쪽 join을 허용하지 않는 이유는 무엇입니까? (0) | 2023.07.16 |
WooCommerce 제품 공급업체 - 분류법 사용자 정의 필드 업데이트 (0) | 2023.07.16 |