2012-09-26 4 views
4

버전 관리에 관해서는 완전히 멍청한 짓이지만, 최근 GitHub를 사용하여 일부 프로젝트를 호스트하기 시작했습니다. 나는 맹목적으로 두 개의 저장소 중 하나에 변경 내용을 푸시려면 git push origin master 명령을 사용합니다. Git이 어떤 저장소를 사용해야 할지를 어떻게 이해하는지 모르겠다. 나는 각각에 동일한 명령을 사용한다. 내가있는 디렉토리가 그 디렉토리와 관련이 있습니까?Git은 푸시 할 저장소를 어떻게 알 수 있습니까?

이 문제를 해결해 주셔서 감사합니다.

+0

[link here] (http://stackoverflow.com/questions/12195747/pushing-a-repository-onto-github/12195854#12195854), – gks

+0

을 확인하십시오. 모르는 사이에 '맹목적으로 사용'하고있는 이유는 무엇입니까? 그것이 실제로 의미하는 것과 그것이하는 것. 특정 단계 후에 엉망이되는 것을 피하려면 git 문서 및 작업 흐름에 시간을 투자하는 것이 좋습니다. – suvankar

답변

1

저장소에는 저장소에 대한 메타 데이터가 들어있는 .git 디렉토리가 있습니다. 이것이 힘내 (Git)가 변경 사항을 어디에 적용할지 결정하는 데 사용됩니다.

+0

먼저 올바른 디렉토리에'cd '해야합니까? 우리가 그 레포의 하위 폴더에 있다면? .git 디렉터리가없는 잘못된 디렉토리에 있다면 어떻게됩니까? – Miladiouss

3

"맹목적인 사용"이란 말은 나쁜 생각입니다.

자식에게는 remotes이라는 시스템이 있습니다.이 시스템을 사용하면 작업중인 곳 이외의 저장소에 URL과 전송을 지정할 수 있습니다. git push origin master은 현재 브랜치를 origin이라는 원격지에 브랜치 마스터로 푸시합니다. 원점이라고하는 리모컨이 있습니다. 이것은 URL에서 저장소를 복제 할 때 기본적으로 작성됩니다.

+0

필자는 리모컨의 '원산지'라는 이름을 사용했기 때문에 모든 명령에서 동일한 명령을 사용하여 문자 그대로 밀어 낼 수 있기 때문에 혼란 스럽습니다. 그것은 기원과 같이 일종의 글로벌 Git 변수가 아니기 때문에 디렉토리와 관련된 것입니다. Fraxtill이 언급 한 .git 디렉토리는 아마 이것에 대한 책임이 있다고 생각합니다. – ICoffeeConsumer

+2

'git' 디렉토리는 프로젝트의 모든 정보를 저장합니다. * 저장소 *입니다. 삭제하면 디렉토리가 더 이상 저장소가 아닙니다. 원격지의 실제 목록과 그들이 가리키는 URL은'.git/config'에 있습니다. –

2

git remote add origin http://abc.com/def/ghi.git은 원격 'origin'이 가리키는 URL을 자식에게 알려줍니다.

3

git push origin master을 사용하면 두 저장소로 푸시하지 않습니다. 이름 (별칭)이 원래 인 저장소의 마스터 분기로 푸시됩니다. 이 같은 그것의

생각한다

내가 내 저장소 주소 기원에 내 물건을 밀어하고있다. 나는 무엇을 거기에서 밀고 있는가? 내 마스터 브랜치.

git init을 통해 새로운 git를 설정한다면 아마도 두 개의 저장소로 푸시하지 않을 것입니다. 이것은 (당신이 github에 같은 자식 호스팅 서비스를 가정)처럼 뭔가를 반환합니다

git remote -v 

:

blahblah [email protected]:yourGithubName/fileName.git (fetch) 
blahblah [email protected]:yourGithubName/fileName.git (push) 

[email protected] : yourGithubName/fileName에 당신의 리모컨이 무엇인지보기 위해이 명령을 실행 .git는 저장소 주소입니다. 일부 주소의 접두어는 https : //입니다.

관련 문제