"git remote add..." 및 "git push origin master"란 무엇입니까?
종종, Git와 Ruby on Rails는 마법처럼 보입니다...Ruby on Rails 3 튜토리얼 책의 첫 장과 같이 Git에 대해 이야기합니다.
git remote add origin git@github.com:peter/first_app.git
git push origin master
그리고 그것은 그들이 무엇인지에 대해 너무 많이 말하지 않고 "그냥 효과가 있다"고 말하고 분기에 대해 이야기하기 시작합니다.인터넷에서 검색하면 다음과 같습니다.git remote add
다음과 같은 "짧은 이름"을 추가하는 것입니다.origin
URL에 대한 별칭과 같은 임의의 이름일 수도 있습니다.
그리고.origin
는 원격 리포지토리가 가리키는 일반적인 경로입니다(http://git-scm.com/book/en/Git-Basics-Working-with-Remotes 의 "원격 리포지토리 추가" 아래에 있음).
왜 은 그왜이 URL이 것입니까?git://git@github.com/peter/first_app.git
하지만 다른 구문에서는 -- 어떤 구문입니까? 왜그이끝합니까나로 합니까?.git
사용하지 않으려고 했습니다..git
마지막에 그리고 그것은 또한 효과가 있습니다.아니라면.git
또 뭐가 있을까요? 그git
git@github.com
Git 서버의 사용자 계정인 것 같습니까?
또한, 왜 그렇게 장황하게 사용해야 합니까?git push origin master
기본값은 오리진 및 마스터가 될 수 없습니까?저는 처음에,origin master
커밋 에, 필하지만커, 편과밋후에집작은요,후작커밋에▁is.git push
필요한 것이 전부입니다(필요 없음).origin master
무슨 일이 일어나고 있는지 아는 사람이 좀 더 자세히 말해줄 수 있습니까?
가끔은 설명도 없이 엄청난 마법처럼 느껴지기도 해요그리고 때때로 그것을 사용하는 사람은 너무 자신감이 넘치고, 왜 그런지 물었을 때, 그것을 설명할 수 없고, "그런 것이다"와 같은 것으로 대답합니다.때때로 매우 실용적이고 실용적입니다.실용적인 것은 나쁘지 않지만, 아마도 무슨 일이 일어나고 있는지 모를 정도로 실용적이지는 않을 것입니다.
Git는 Unix와 같습니다.그것은 사용자 친화적이지만 친구들에게 까다롭습니다.그것은 셸 파이프라인만큼 강력하고 사용자 친화적입니다.
즉, 일단 그 패러다임과 개념을 이해하면 유닉스 명령줄 도구에서 기대했던 것과 같은 Zen과 같은 명확성을 갖게 됩니다.당신은 온라인에서 이용할 수 있는 많은 좋은 Git 튜토리얼 중 하나를 읽기 위해 잠시 휴식을 취하는 것을 고려해야 합니다.Pro Git 책은 시작하기에 좋은 장소입니다.
첫 번째 질문에 답하기 위해서입니다.
란?
git remote add ...
?여러분도 아시겠지만, Git은 분산 버전 제어 시스템입니다.대부분의 작업은 로컬에서 수행됩니다.외부 세계와 소통하기 위해 Git는 "원격"이라고 불리는 것을 사용합니다.이러한 리포지토리는 로컬 디스크에 있는 리포지토리가 아닌 다른 리포지토리로, 다른 사용자가 변경사항을 볼 수 있도록 변경사항을 밀어넣거나 다른 사용자가 변경사항을 가져올 수 있도록 끌어낼 수 있습니다.명령어
git remote add origin git@github.com:peter/first_app.git
는 라는 라는 새 을 생성합니다.origin
에치한에 .git@github.com:peter/first_app.git
이렇게 하면 전체 URL을 입력하는 대신 푸시 명령에서 오리진으로 푸시할 수 있습니다.란?
git push origin master
?이것은 "master라는 로컬 분기의 커밋을 명명된 원격 오리진으로 푸시"라는 명령입니다.이 작업이 실행되면 마지막으로 오리진과 동기화한 모든 항목이 원격 저장소로 전송되고 다른 사용자가 해당 항목을 볼 수 있습니다.
운송을 의미하는지, 무엇을 의미하는지)에 대해 .git://
는 의미합니다.)은 의미합니다.이 있을 수 ("URL" 또는 "URL").file://
,https://
는 단순히 합니다.Git는 단순히 권한 등을 처리하기 위해 전송에서 제공하는 인증 메커니즘에 의존합니다.이것은 다음과 같은 의미입니다.file://
URL, 유닉스 파일 권한 등이 될 것입니다. 그git://
스킴은 Git에게 Git 변경 세트를 보내기 위해 최적화된 자체 내부 전송 프로토콜을 사용하도록 요청하는 것입니다.정확한 URL은 GitHub이 Git 서버를 설정한 방식 때문입니다.
다음은 장황함입니다.입력한 명령어는 일반 명령어입니다.Git에게 "여기 마스터라는 브랜치는 원격의 foo라는 브랜치의 로컬 미러입니다."와 같은 것을 말할 수 있습니다.Git speak에서 이것은 마스터가 bar/foo를 추적한다는 것을 의미합니다.처음 복제할 때 마스터라는 분기와 원본에서 마스터를 추적하기 위한 로컬 마스터 세트가 있는 오리진이라는 원격이 생성됩니다.
이 설정이 완료되면 다음과 같이 간단히 말할 수 있습니다.git push
그러면 할 수 있습니다.할 수 긴명어는필예사수있다니습할용에경우한요령예).git push
와 공적인공이동수도있고할로저장소공식▁push,,git push review master
팀이 코드를 검토하는 데 사용하는 별도의 원격으로 푸시하는 데 사용할 수 있습니다.다을사여분기추분설수있다습니정을 사용하여 할 수 .--set-upstream
의 git branch
지휘권
저는 Git(제가 사용했던 대부분의 다른 애플리케이션과 달리)이 내부에서 더 잘 이해된다고 느꼈습니다.데이터가 저장소 내부에 저장 및 유지 관리되는 방식을 이해하면 명령과 명령의 기능이 명확해집니다.많은 Git 사용자들 사이에 엘리트주의가 있다는 것에 동의하지만, 저는 또한 예전에 Unix 사용자들과 함께 있었고 시스템을 배우기 위해 그들을 지나칠 가치가 있다는 것을 발견했습니다.행운을 빕니다.
업데이트: 현재 승인된 답변은 다음의 행동에 대한 일반적인 오해를 영속시킵니다.git push
지적에도 불구하고 수정되지 않았습니다.
리포지토리의 URL에 대한 별명과 같이 원격이 무엇인지에 대한 요약이 정확합니다.
그렇다면 왜 URL은 git://git@github.com /peter/first_app.git이 아니라 다른 구문에서는 어떤 구문일까요?왜 그것이 .git로 끝나야 합니까?마지막에 .git을 사용하지 않으려고 노력했고 그것도 작동합니다..git가 아니라면, 다른 무엇이 될 수 있습니까?초보자의 깃은 깃 서버의 사용자 계정인 것 같습니다.
당신이 언급한 두 개의 URL은 두 개의 서로 다른 전송 프로토콜을 사용해야 한다는 것을 나타냅니다.으로 것.git://
일반적으로 리포지토리에 대한 읽기 전용 액세스에만 사용되는 Git 프로토콜용입니다. 하나는, 다한명은른명은.git@github.com:peter/first_app.git
는 SSH를 통해 리포지토리에 대한 액세스를 지정하는 다양한 방법 중 하나로, 설명서에 설명된 "scp-style 구문"입니다.scp-style 구문의 사용자 이름은git
GitHub이 사용자 식별을 처리하는 방식 때문입니다. 기본적으로 사용자 이름은 무시되고 사용자는 인증에 사용된 SSH 키 쌍을 기반으로 식별됩니다.
관는서해에의 는.git push origin master
당신은 첫 번째 푸시 후에 그냥 할 수 있다는 것을 알아차렸습니다.git push
은 기억하기 으로 도움이 되는 기본값 입니다 :) 는억기이일로으유용일기때다문니입 :)
- 되지 않은 분기에 된 원격( the configured in the branch)
remote.master.url
사용자의 경우)가 사용됩니다.설정되어 있지 않으면,origin
사용됩니다. - " "refspec")이 없는 :
master
,master:my-experiment
등)을 지정한 다음 Git는 기본적으로 원격의 분기와 이름이 같은 모든 로컬 분기를 푸시합니다.만약 당신이 단지라는 지점을 가지고 있다면.master
"" "" "" "" "" "" "" ""를 누르는 것과 .master
떨어진 먼곳로까지master
.
개인적으로, 저는 많은 주제 분기(그리고 종종 여러 개의 원격)가 있는 경향이 있기 때문에 항상 다음과 같은 형식을 사용합니다.
git push origin master
실수로 다른 가지를 밀지 않도록 합니다.
다른 답변 중 하나에 대한 귀하의 의견에 대해 말하자면, 마치 Git에 대해 톱다운 방식으로 매우 효과적으로 학습하는 것처럼 들립니다. 기본값이 작동한다는 것을 발견했고, 그 이유에 대해 질문하는 것입니다;;) 더 진지하게 말하자면, Git은 기본적으로 SVN처럼 간단하게 사용될 수 있습니다.그러나 원격 및 지점에 대해 조금만 알면 훨씬 더 유연하게 사용할 수 있으며 이는 작업 방식을 개선할 수 있습니다.
한 학기 과정에 대한 당신의 말을 들으니 학생들은 컴퓨터 과학과 소프트웨어 공학의 모든 종류의 기본 도구에 대해 배우지만 버전 관리는 거의 하지 않습니다.Git 및 Mercurial과 같은 분산 버전 제어 시스템은 이제 매우 중요하고 유연하여 사람들에게 좋은 기초를 제공하기 위해 이에 대한 과정을 가르칠 가치가 있습니다.
는 제견는해에 입니다.git
이 학습 곡선은 절대적으로 가치가 있습니다. 많은 주제 분기를 사용하여 작업하고, 쉽게 병합하며, 시스템에 자신이 생기면 서로 다른 리포지토리 간에 밀어넣고 끌어다 놓는 것이 환상적으로 유용합니다.유감스럽게도 다음과 같습니다.
- Git에 대한 주요 문서는 새로 온 사람들에게는 구문 분석하기가 너무 어렵습니다. (거의 모든 Git 질문을 구글에 검색하면 유용한 튜토리얼 자료(또는 Stack Overflow 답변:))가 요즘 올라옵니다.
- Git에는 많은 스크립트가 의존할 수 있기 때문에 현재 변경하기 어려운 몇 가지 이상한 행동이 있지만 사람들에게 혼란을 줍니다.
원격 리포지토리를 추가하기 위한 구문을 살펴봅니다.
git remote add origin <url_of_remote repository>
예:
git remote add origin git@github.com:peter/first_app.git
명령을 해부해 보겠습니다.
git remote 이것은 git 저장소를 호스팅하기 위한 중앙 서버를 관리하는 데 사용됩니다.
중앙 저장소 항목에 GitHub을 사용하는 것일 수 있습니다.예를 들어 git remote add origin 명령에 대해 설명하겠습니다.
제가 Git 저장소를 위한 중앙 서버를 위해 GitHub 및 Bitbucket과 함께 작업하고 있고 첫 번째 앱 프로젝트를 위해 두 웹 사이트에 저장소를 만들었다고 가정해 보겠습니다.
이제 두 Git 서버 모두에 변경 사항을 적용하려면 Git에 중앙 저장소에 도달하는 방법을 알려줘야 합니다.그래서 이것들을 추가해야 할 것입니다.
깃허브용
git remote add gh_origin https://github.com/user/first-app-git.git
그리고 비트 버킷용
git remote add bb_origin https://user@bitbucket.org/user/first-app-git.git
저는 두 변수(변수라고 부르는 것이 쉬운 한) gh_origin(GitHub의 경우 gh)과 bb_origin(bb 비트버킷의 경우 bb)을 사용하여 우리가 원하는 모든 것을 오리진이라고 부를 수 있다는 것을 설명했습니다.
이제 몇 가지 변경 사항을 적용한 후 다른 사용자가 변경 사항을 볼 수 있도록 모든 변경 사항을 중앙 저장소로 전송(푸시)해야 합니다.그래서 전화합니다.
깃허브로 밀어넣기
git push gh_origin master
비트 버킷으로 밀어넣기
git push bb_origin master
gh_hostname은 https://github.com/user/first-app-git.git 의 값을 보유하고 있고 bb_hostname은 https://user@bitbucket.org /user/first-app-git.git의 값을 보유하고 있습니다.
이 두 가지 변수가 제 삶을 더 편하게 만들고 있습니다.
코드 변경사항을 전송할 때마다 동일한 URL을 기억하거나 입력하는 대신 이 단어를 사용해야 합니다.
예를 들어 GitHub 또는 Bitbucket과 같은 하나의 중앙 저장소만 처리하는 경우가 대부분이기 때문에 오리진 외에는 아무것도 볼 수 없습니다.
그
.git
저장소 이름의 끝에는 단지 관례일 뿐입니다.서버에서 는 일적으로에저서다장버같음는이디보다관에니라는 이름의 됩니다.project.git
Git 클라이언트 및 프로토콜은 테스트를 통해 이 협약을 준수합니다.project.git
뿐인 경우에는project
지정되었습니다.git://git@github.com/peter/first_app.git
올바른 Git URL이 아닙니다.여기에 지정된 다양한 URL 체계를 통해 Git 저장소를 식별하고 액세스할 수 있습니다.git@github.com:peter/first_app.git
는 것은입니다.ssh
해당 페이지에 언급된 URL.깃은 유연합니다.모든 리포지토리의 거의 모든 분기에 대해 로컬 분기를 추적할 수 있습니다.하는 동안에
master
지점)(사용자의 로컬 기본 지점) 추origin/master
(원격 기본 브랜치)는 일반적인 상황이며, 보편적인 상황은 아닙니다.여러분은 종종 그렇게 하고 싶지 않을 수도 있습니다.이것이 첫번째 이유입니다.git push
너무 장황해요.그것은 Git에게 지역 주민들과 무엇을 해야 하는지 알려줍니다.master
을 할 때git pull
는또.git push
.은 " " 입니다.
git push
그리고.git pull
현재 지점의 리모컨으로 작업하는 것입니다.오리진 마스터보다 더 나은 기본값입니다. 그git push
여기서 설명하는 내용을 결정합니다.
git
상당히 우아하고 이해할 수 있지만, 학습 곡선을 통해 살펴볼 수 있습니다.
이 질문에 대한 답변입니다(Heroku App을 새 GitHub repo로 내보내기). 이 질문의 중복으로 표시되어 여기로 리디렉션되었습니다.
Heroku에서 GitHub 개인 저장소로 미러링하여 Heroku에서 수행한 모든 커밋 등을 보여주고 싶었습니다.GitHub 설명서의 명령줄을 사용하여 Git 저장소를 가져오는 것이 유용했습니다.
Git 원격 추가 오리진:
소스 코드를 다른 프로젝트에 중앙 집중화합니다.그것은 리눅스를 기반으로 개발되었으며, 오픈 소스를 완성하고 당신의 코드를 다른 git 사용자들에게 유용하게 만듭니다.우리는 그것을 참조라고 부릅니다.
GitHub의 원격 URL을 사용하여 Git 저장소에 코드를 푸시합니다.
언급URL : https://stackoverflow.com/questions/5617211/what-is-git-remote-add-and-git-push-origin-master
'programing' 카테고리의 다른 글
mongodb 점이 다각형에 있는지 확인합니다. (0) | 2023.07.09 |
---|---|
관련 없는 구성 요소 간의 Vue 통신 (0) | 2023.07.09 |
DataReader 개체에서 필드의 데이터 유형 찾기 (0) | 2023.07.09 |
JPA 및 최대 절전 모드를 사용하여 Java 부울 열을 Oracle 번호 열에 매핑 (0) | 2023.07.09 |
연관 테이블을 사용하는 것보다 플래그를 비트 마스크로 저장하는 것이 더 나은 경우는 언제입니까? (0) | 2023.07.09 |