최고의 옵션
맨손이 아닌 원격 저장소로 푸시하는 가장 깨끗하고 혼란스럽고 안전한 방법은 랩톱 지점을 나타내는 리모콘의 전용 지점으로 푸시하는 것입니다.
가장 간단한 경우를 살펴보고 각 리포지토리에 마스터가 하나만 있다고 가정합니다. 마스터-> 마스터를 누르는 대신 랩톱에서 원격 저장소로 푸시 할 때 마스터-> 랩톱 마스터 (또는 유사한 이름)를 누릅니다. 이런 방식으로 푸시는 원격 저장소의 현재 체크 아웃 된 마스터 브랜치에 영향을 미치지 않습니다. 랩톱 에서이 작업을 수행하려면 명령이 매우 간단합니다.
git push origin master:laptop-master
이는 로컬 마스터 분기가 원격 저장소에서 "laptop-master"라는 분기로 푸시됨을 의미합니다. 원격 리포지토리에는 "랩탑 마스터"라는 이름의 새 브랜치가 있으며 준비가되면 원격 마스터에 병합 할 수 있습니다.
대체 옵션
master-> master를 밀어 넣는 것도 가능하지만 현재 진행중인 베어 아웃 저장소의 현재 체크 아웃 된 분기로 밀어 넣는 것은 권장되지 않습니다. 진행 상황을 이해하지 못하면 혼동 될 수 있기 때문입니다. 체크 아웃 된 분기로 푸시해도 작업 트리가 업데이트되지 않기 때문에 푸시 된 체크 아웃 분기 git status
에서 체크인하면 가장 최근에 푸시 된 것과 정확히 반대의 차이가 표시됩니다. 푸시가 완료되기 전에 작업 트리가 더러워지면 특히 혼란 스러울 것입니다. 이것이 권장되지 않는 큰 이유입니다.
master-> master를 누르려고하면 명령은 다음과 같습니다.
git push origin
그러나 원격 리포지토리로 돌아 가면 git reset --hard HEAD
푸시 된 콘텐츠와 작업 트리를 동기화하기를 원할 것입니다. 유지하려는 원격 작업 트리에 커밋되지 않은 변경 사항 이 있으면 지워 지기 때문에 위험 할 수 있습니다 . 시도하기 전에이 결과가 어떤 영향을 미쳤는지 확인하거나 최소한 백업을 먼저 수행하십시오!
편집 Git 2.3부터는 "Push-to-deploy"git push를 사용할 수 있습니다 : https://github.com/blog/1957-git-2-3-has-been-released . 그러나 별도의 지점으로 이동 한 다음 병합하는 것이 일반적으로 실제 병합을 수행하므로 일반적으로 더 좋습니다 (따라서 병합과 마찬가지로 커밋되지 않은 변경 사항과 함께 작동).