2014-12-24 2 views
2

git에 대한 나의 이해는 기본이지만 프로젝트가 한 시스템에서 다른 시스템으로 복제되거나 다른 시스템으로 끌어 당길 수있는 원격 시스템으로 "푸시"될 수 있음을 이해합니다.홈 서버에 git 리포지토리를 설치할 수 있습니까? (그렇다면 어떻게?)

예를 들어 github.com은 프로젝트를 푸시하거나 호스트 할 수있는 하나의 도메인이라는 것을 알고 있습니다.

내 질문은 홈 서버의 저장소와 같은 github을 설정할 수 있으며 서버의 IP, 등등과 같은 관련 정보를 알고 있다고 가정하고 내 작업의 백업을 푸시 할 수 있습니다.

이 질문에 대한 대답이 "예"이면 질문 번호 2는 "방법"입니다.

편집 : 사실 SVN 시스템을 사용하고 싶을 수도 있습니다. 그렇지 않습니다.

+0

@self 내가 취업했다고 생각하는 이유는 무엇입니까? – user3728501

답변

3

SSH를 홈 서버에 넣을 수 있다면 폴더를 만드는 것만 큼 쉽습니다 (그 안에 몇 가지 물건 포함)!

[[email protected] ~]$ mkdir my-project 
[[email protected] ~/my-project]$ cd my-project/ 
[[email protected] ~/my-project]$ git init --bare 

[[email protected] ~/my-project]$ git remote add home-server ssh://[email protected]/my-project 

이것은 본질적으로 로컬 하나로 .git 폴더와 동일한 베어 원격 저장소를 생성한다.

+0

안녕하세요, 제가 잘못 생각한 것 같습니다. SSH는 원격 연결을 통해 bash와 같은 터미널에 안전하게 연결하는 데 사용되는 프로토콜이라고 생각했습니다. 나는 여기서 그 관련성을 이해하지 못한다. 확실히 SSH를 사용할 필요가 없습니까? 전송을 처리하기 위해 git을 사용하고 다른 가정용 컴퓨터에서 홈 서버로 내 작업의 사본을 백업하는 데 사용합니다. 푸시 풀을 사용하여 github 저장소에서 파일을 이동하는 것과 조금 비슷합니까? – user3728501

+0

@ user3728501 : 예를 들어 scp를 사용 했습니까? SSH가이를 설정하는 가장 편리한 방법입니다. GitHub에서 https : // \ * origin을 사용하는 경향이 있다면 a) 그렇게하기가 훨씬 어렵습니다. b) SSH를 중지하고 사용하는 것이 좋습니다. – Ryan

+0

나는 정적 인 IP를 가진 네트워크 컴퓨터에 일부 git 소프트웨어를 설치하고 '어딘가에 뭔가 어딘가에'192.168.0.X와 같은 것을 넣는 것과 같은 일을한다고 생각했다. 그게 내가 뭘 하려는지 명확히하는 데 도움이 될지 모르겠다.나는 그 순간에 어떻게 움직일 지 모호한 생각 만 가지고있다. – user3728501

0

질문 번호 1 : 가능합니다. git는 분산 버전 제어 시스템입니다.

질문 번호 2 : O. 서버에서 실행 중입니까? Windows? 리눅스? 리눅스가 있다면 서버에 SSH를 사용하는 것을 고려할 수 있습니다. 배포판에 따라 웹상에서 SSH 서버를 설정하는 방법에 대한 자습서가 있습니다. 우분투와 함께 사용했습니다.

http://www.redeszone.net/windows/freesshd-para-windows-instalacion-y-manual-de-configuracion-de-freesshd-para-windows-servidor-ssh-y-sftp/

을 그리고 페이지를 (마지막 스페인어에) 번역 할 수없는 경우 대략이 토론을 읽을 수 있습니다

https://help.ubuntu.com/10.04/serverguide/openssh-server.html

당신은 창문이있는 경우, 당신은이를 테스트 할 수 있습니다 창에 SSH 서버 :

https://serverfault.com/questions/8411/what-is-a-good-ssh-server-to-use-on-windows

Windows에서 SSH 서버에 대한 개인적인 경험이 없지만 퍼티를 클라이언트로 사용합니다.

그래서 원격 저장소에 안전하게 액세스하려면 SSH를 통해 액세스해야합니다.

편집 :

음, 모두가 SSH를 사용하도록 제안하지만 난 내가 알고 또는 무엇을 내가 알고 있다고 생각을 설명하려고합니다 이유를 모르겠어요.

힘내는 SVN과 같지 않으며, 프로그램/프로세스가 서버로 실행되고 있지 않다면 "힘내 서버"와 연결하여 푸시를하지 마십시오.

로컬 컴퓨터에 Git과 함께 버전이 표시된 프로젝트의 복사본이 두 개 있다고 가정하고 A와 B의 복사본을 지정하고 A 또는 B에서 "리모컨"을 구성하여 어느 한쪽으로 밀어 넣을 수 있지만 완료되었습니다. 단일 프로그램 (힘내)에 의해 명령을 실행할 때, 힘내는 양쪽 저장소에 접근 할 수 있어야한다. 그리고 그는 필요한 모든 검사를하고 적당한 저장소에 자료를 저장한다.

원격 서버에 리포지토리가있는 경우 계속 git을 사용하여 푸시를 할 수 있지만 원격 리포지토리 (로컬 인 경우)에 액세스하는 방법을 Git에 제공해야하며 ftp와 같은 프로토콜을 사용할 수 있습니다 SSH가 작동 할 때 SSH를 사용하면 SCP 및/또는 SFTP (보안 연결로 저장소에 액세스하는 방법)를 사용할 수 있습니다.

네트워크를 통해 VPN을 설정하고 (프로젝트의) 컨테이너 폴더를 공유하고 로컬 인 것처럼 해당 폴더를 마운트 할 수도 있습니다 (파일에 액세스하는 유일한 사람 인 경우 팀과 함께 작업하는 경우 SSH (scp/sftp)를 사용해야합니다.

하지만 지금까지 해보는 가장 좋은 방법은 SSH를 사용하는 것입니다. 시도해야합니다.

+0

안녕하세요 저는 리눅스를 사용하고 있습니다 – user3728501

+0

SSH를 사용하고 싶습니다. 나는 SSH가 원격 셸 (bash 같은)에 접근하는 방법 일 뿐이라고 생각했다. – user3728501

0

또한 Git 워크 플로우를 이해하기 위해 내 컴퓨터에서 동일한 작업을 시도했습니다. 개인적으로 git 코드 호스팅 사이트를 사용하는 것을 선호합니다. 저는 여기에의 존 당신과 함께 작동하고 당신의 친구를 가정 해 봅시다 지금, 자식에 대한 새로운 사용자 계정을 생성, 보안 목적

$ sudo apt-get install openssh-server openssh-client 

,

$ sudo adduser git 
$ su git 
$ cd 
$ mkdir .ssh && chmod 700 .ssh 
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys 

을이했던 방법이고 당신은주고 싶어 사용자 계정에 액세스 할 수 있습니다. ~/.ssh/authorized_keys

친구의 컴퓨터에 SSH 개인 - 공개 키 쌍을 사용하여 다음과 같은 명령을 생성하려면

$ ssh-keygen -t rsa -C "[email protected]" 

지금 사용자 자식, 예를 들어 액세스 할 수있는 디렉토리를 만들 : 그래서, 자식 사용자의 파일에 자신의 공개 키를 복사 : /opt/git/project.git

$ cd /opt/git/project.git 
$ git init --bare 

이제 존이 자식 서버에 자신의 로컬 컴퓨터에서 수행 변화를 푸시 할 수 있습니다.

$ cd myproject 
$ git init 
$ git add . 
$ git commit -m 'initial commit' 
$ git remote add origin [email protected]:/opt/git/project.git 
$ git push origin master 

나는 이것이 귀하가 원했던 기본 단계라고 생각합니다. 자세한 내용은 on git-scm.com을 참조하십시오. 동일한 링크는 git 사용자가 git-shell이라는 제한된 쉘 도구를 사용하여 Git 활동 만 수행하도록 제한하는 방법을 설명합니다.

+0

이것이 내가 원하는 라인을 따라 있을지 모르지만 SSH에 대한 모든 요구 사항은 무엇인가? 그것은없이 할 수 있습니까? 내 생각 엔 2 키 라인은 ''이라는 원의 원격 추가입니다. ''대신 ''이 어떤 키워드인지 '원산지'로 처리해야한다고 알려줍니다.이 경우 ' git @ gitserver : /opt/git/project.git '... 그리고'git push origin master '라는 두 번째 키 라인은'master '에서 변경된 파일을 이동시키는 것으로 추측됩니다 (현재 디렉토리를 의미합니까?). 이전에 위의 웹 주소로 선언 된 '출처'로 변경되었습니다. 그 맞습니까? – user3728501

+0

예, ssh 없이도이 작업을 수행 할 수 있지만 공유 액세스가 더 어렵습니다. 그래서 당신은 [로컬 프로토콜 방법] (http://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols#Local-Protocol)을 찾고 있다고 생각합니다. –

관련 문제