[git] git push to specific branch

이 질문을 읽은 후에도 git-push-current-branch , 나는 여전히 git push 명령을 작성하는 방법을 파악하는 데 어려움을 겪고 있습니다. 질문 링크에서 언급했듯이 문서에서 명확하지 않습니다.

내 ‘실제 세계’예제를 사용하고 싶습니다. 다음은 git status브랜치의 최상위 수준 에서 명령을 수행 할 때 표시되는 내용입니다 .

분기 amd_qlp_tester

브랜치는 5 커밋만큼 ‘origin / amd_qlp_tester’보다 앞서 있습니다.

기타…

그래서 내 브랜치 이름은 amd_qlp_tester기본 브랜치에서 “분기”되었습니다 (용어가 잘못된 경우 SVN 배경 때문입니다). 그러나 ‘origin / amd_qlp_testser’라는 이름도 있습니다.

그렇다면 내 푸시 명령을 어떻게 표현합니까?

다음 중 하나입니까?

git push origin/amd_qlp_tester
git push origin amd_qlp_tester
git push amd_qlp_tester
git push origin
git push



답변

git push origin amd_qlp_tester당신을 위해 일할 것입니다. 을 입력하기 만하면 git push현재 분기의 원격이 기본값입니다.

push 구문은 다음과 같습니다 git push <remote> <branch>. 원격 .git/config파일 [remote "origin"]을 보면 저장소의 URL을 지정 하는 항목 이 표시됩니다. 따라서 명령의 첫 번째 부분에서이 프로젝트의 저장소를 찾을 위치를 Git에 알리고 브랜치를 지정하기 만하면됩니다.


답변

로컬 브랜치와 원격 브랜치가 동일한 이름이면 다음과 같이 할 수 있습니다.

git push origin branchName

로컬 및 원격 지점 이름이 다른 경우 다음과 같이 할 수 있습니다.

git push origin localBranchName:remoteBranchName


답변

링크 된 질문의 답변은 모두 git을 구성하여 매우 짧은 git push명령을 입력 하고 원하는대로 수행 할 수 있도록하는 것 입니다. 당신이 원하는 것을 알고 Git-Ese에서 철자를 어떻게 쓰는지 알고 있다면 훌륭하지만, 당신은 git을 처음 사용합니다! 🙂

귀하의 경우 Petr Mensik의 대답 은 (음, “a”) 옳은 것입니다. 그 이유는 다음과 같습니다.

명령 은 “remote”(예 :)라는 이름 의 파일을 찾기 위해 파일에 뿌리를 둡니다 . 구성 파일은 다음을 나열합니다.git push remote.git/configorigin

  • 여기서 (URL-현명한) 해당 원격 “삶”(예 )ssh://hostname/path
  • 다른 경우 푸시가가는 곳
  • 푸시 할 분기를 말하지 않은 경우 푸시되는 항목
  • 실행할 때 가져 오는 것 git fetch remote

리포지토리를 처음 복제했을 때 (그때마다) git은 이들 중 일부에 대한 기본값을 설정합니다. URL은 설정 또는 해제, 모든 “적당한”기본값 … 나, 흠, 경우에 당신이에서 복제하고, 나머지는 뭐든 있습니다 그들은을?

이것의 문제는 사람들이 “합리적인”것에 대해 시간이 지남에 따라 마음을 바꾸 었다는 것입니다. 이제 (git의 버전과 세부 사항을 구성했는지 여부에 따라) git은 향후 기본값 변경에 대한 많은 경고를 출력 할 수 있습니다. “푸시 할 분기”의 이름을 추가하면 amd_qlp_tester— (1) 해당 분기가 종료되고 (2) 해당 분기 만 푸시됩니다.

더 편리하게 밀고 싶다면 다음과 같이 할 수 있습니다.

git push origin

또는:

git push

그러나 그것이 당신이 원하는 것을하는지 여부는 원래 기본값이 합리적이라는 “초기 git 작성자”에 동의하는지 또는 원래 기본값이 합리적이지 않다는 “나중에 git 작성자”에 동의하는지 여부에 따라 다릅니다. 따라서 모든 구성 작업을 수행하려면 (결국) 연결 한 질문 (및 답변)을 참조하십시오.

이름에 관해서는 origin/amd_qlp_tester처음부터 : 실제로 현지 법인의 IT는 “원격 지점”이라고에도 불구하고, (이름은 당신의 repo 내부에 보관). ” amd_qlp_tester저기 있는 곳”에 대한 git의 최선의 추측 이다. Git은 가능할 때 업데이트합니다 .


답변

업데이트 된 답변을 추가하고 싶습니다-지금은 잠시 동안 git을 사용했으며 다음 명령을 사용하여 푸시를 수행하는 경우가 많습니다 (원래 질문을 예제로 사용).

  • git push origin amd_qlp_tester-라는 origin원격 분기에서 호출 되는 원격지에있는 분기로 푸시합니다 amd_qlp_tester.
  • git push -u origin amd_qlp_tester-마지막과 동일하지만 로컬 분기를 원격 분기에 연결하는 업스트림을 설정하여 다음에 git push/pull아직 연결되지 않은 경우 에만 사용할 수 있도록합니다 (한 번만 수행하면 됨).
  • git push -일단 업스트림을 설정하면이 짧은 버전을 사용할 수 있습니다.

참고 -u 옵션은의 짧은 버전이며 --set-upstream동일합니다.


답변