로컬 리포지토리에서 혼자 작업하는 경우 왜 푸시해야합니까?


21

Windows 용 GitHub를 통해 Git과 상호 작용하고 있습니다 .GitHub에 저장소를 푸시하지 않기 때문에 재미 있습니다. 나는 혼자서 노력하고 있으며 나만 사용하도록 고안되었습니다. 커밋이 "동기화되지 않은 커밋"과 "이력"아래에 "커밋 없음"이라고 표시되어 있음을 알았습니다. "역사"에 나와있는 커밋을 제외하고는 무엇을 통해 문제를 해결할 수 있습니까?


14
이 질문에서 지적 할 가치가있는 한 가지 중요한 부족이 있습니다. 원격으로 아무것도 푸시하지 않은 경우 모든 작업은 로컬 온 디스크 저장소에 있습니다. 기계를 잃어 버리고 당신이 한 모든 것을 잃어 버리십시오.
Lars Viklund

답변:


40

기술적으로 정확합니다. 다른 사람과 코드를 공유하지 않으면 실제로 푸시 할 필요가 없습니다.

그런 다음 노트북에는 최저 입찰자가 만든 하드 드라이브가 있습니다. 하드 드라이브가 고장 나기 전에 집이 타 버릴 수 있습니다. 코드를 원격으로보고 싶을 수도 있습니다. 또는 누군가와 공유 할 수도 있습니다.

이제 Github을 사용하면 모든 것이 공개되거나 개인 저장소 비용을 지불해야합니다. 따라서 직접 보관하려면 비트 버킷을 확인하고 git을 수행 할 수 있지만 무료 개인 저장소가 있습니다.

또 다른 옵션은 원격으로 백업 된 어딘가에 git 저장소를 저장하는 것입니다. 그러나 요즘 클라우드 SCM 제공 업체를 사용하는 것보다이 방법을 사용하면 이점이 거의 없습니다.


BitBucket은 거의 무제한의 개인 저장소 를 무료로 제공 합니다.

추진해야 할 이유가 많이 있습니다. 워크 플로우는 실제로 그렇게 많이 변하지 않습니다. 커밋, 커밋, 커밋, 워크 플로우 완료 및 푸시 작업
Rig

7

리포지토리로 푸시하려는 또 다른 이유가 있습니다 (어쨌든 로컬 인 경우에도) : workstations .

나는 당신에 대해 모른다. 그러나 나는 4 대의 다른 컴퓨터 (집에있는 1 대의 PC, 1 대의 노트북, 1 개의 사무실 PC 및 1 개의 사무실 노트북)에서 일하고 회사 서버에 제대로 설정된 Git 서버에 변경 사항을 푸시하면 빠르게 동기화되고 고통없는. Git은 DVCS이므로 그 장점을 활용하고 있습니다. 백업뿐 아니라 내가 작업하고있는 다른 모든 코드베이스를 쉽게 병합, 확인 및 분석 할 수 있습니다.

예를 들어, 가정용 PC가 "서버"(또는 원본)이고 가정용 랩톱이있는 경우 로컬 일 수 있습니다. 이렇게하면 쉽게 동기화 할 수 있습니다.

주석 : 사람들은 종종 "드롭 박스 (또는 다른 동기화 서비스)를 사용하고 싶습니다"라고 말합니다. Git 리포지토리에 방대한 양의 객체가 있기 때문에 Dropbox를 그렇게 사용하는 것은 말도 안됩니다. 옵션이지만 좋은 말은하지 않습니다.


+1, 나는 당신의 경우에도 똑같이 할 것입니다. 집에서 밀고 다니고 직장에 있으면 어떻게해야합니까?
모쉐 Revah

2
@Zippoxer 다른 작업에 집중하고 나중에 병합하십시오.
bytebuster

정확히 @bytebuster가 말한 것. 이것이 DVCS의 아름다움입니다! (실제로 연습하면 다시 잊지 않을 것입니다!)
AeroCross

대안 : 측면 / 취미 프로젝트를 통해 휴식을 취하거나 새로운 아이디어 등을 탐색하십시오. :-)
johannes

6

분산 SCM으로서 git은 '작업 복사본의 스냅 샷 만들기'(커밋)와 '동기화 저장소 동기화'(푸시 / 풀 / 페치) 개념을 구분합니다.

리포지토리의 로컬 복제본이 하나만있는 경우 푸시하는 것이 합리적이지 않습니다. 그러나, github에, 당신은 또 다른 클론 (GitHub의에 하나), 그리고 변경을 추진하는 것은 적어도 하나의 장점이있다 : 백업을. 컴퓨터가 죽어도 여전히 github에 대한 모든 정보가 남아 있습니다.

물론 이것은 github의 주요 목적이 아닙니다. github은 코드를 공유하기위한 것이므로 프로젝트가 github에있는 경우 다른 사람들이 거기에서 가져 오거나 프로젝트를 복제하거나 복제 요청을 처리하거나 신뢰할 수있는 사람들에게 저장소에 대한 액세스 권한을 부여 할 수 있습니다.

또 다른 이유는 여러 로컬 클론을 사용하는 경우입니다. 이는 여러 가지에 유용 할 수 있습니다. 예를 들어, 동시에 두 개의 서로 다른 브랜치에서 작업하거나 저장소에서 파괴적인 작업을 시도 할 수 있습니다. 모든 것이 의도 한대로 작동하면 수정 된 클론을 유지하거나 변경 사항을 원래 리포지토리로 다시 밀어 넣습니다. 그러나 남쪽으로 가면 엉망인 클론을 삭제하고 원래 복제본으로 돌아갈 수 있습니다 (아직 변경되지 않음). .

일부 사람들은 배포를 위해 git을 사용하기도합니다. 프로덕션 버전은 git repo이며 최신 버전으로 업데이트하는 것은 가져 오기 및 체크 아웃 문제입니다 (물론 빌드 단계가 필요없는 경우에만 작동 함). 나는 진지한 것들을 위해 반드시 그것을 권장하지는 않지만 작은 것들을 위해 간단하고 실용적인 해결책입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.