本人学生党,现在和几个同学一起开发,打算用git
目前git搭建好裸仓库了,并且hooks可以自动同步到web项目中.
由于服务器上的代码不是仓库,现在想要将原先另一个服务器上的代码导入到裸仓库上,然后供团队成员去pull。该如何做?自己想到的办法就是先将代码拉到本地,然后再从本地push到中央仓库,由于做了自动同步,所以中央仓库则自动将push的代码同步到web项目。但个人感觉应该有更好的方法。求告知?
还有就是一般git的使用仓库是整个项目吗?还是项目中的部分?如果是整个项目,用户上传图片那岂不是每次更新还要将上传的图片更新到本地。
查了挺久资料的,也很少讲这方面的,求各位大神详解。
===========================
您好,就现在我们团队在项目中出现了一个问题就是,由于5.1期间项目出了个bug,有个同学在家里修改了bug,但他的电脑没装git,所以使用ftp上传了。现在由于使用ftp上传所以没有使用到中央仓库自然就没有触发到hooks的post-reveice也就不会push到网站项目中(有点绕,望大神能理解),所以现在使用git就无法获取拉取到他所上传的那一部分。所以现在的问题就是我要写多一个hooks,网站项目上的一旦改变(如果是ftp上传的)则pull到中央仓库,然后本地才能获取。做到中央仓库和网站项目能双向同步。可能我们这种做法不太好,但是目前暂时只能这么做,当然也希望大神回答是顺带提供下好的方法。再次谢过
문제 설명이 명확하지 않아서 제가 이해한 대로 간략하게 설명하겠습니다.
코드를 마이그레이션하는 방법은 문제가 되지 않습니다.
일반적으로 git에서 사용하는 웨어하우스는 전체 프로젝트이며 일부 하위 모듈이 포함될 수 있습니다.
사용자가 이미지를 업로드한다고 말씀하신 것은 사실 또 다른 질문입니다. git 프로젝트 웨어하우스를 서버에 동기화하여 웹 프로젝트의 디렉토리로 사용하셨나요?
그렇다면 약간의 문제가 있을 것입니다. 우선 git Warehouse를 개발에만 사용하는 것이 좋습니다. 웹 프로젝트 게시 및 배포는 Jenkins 등을 사용하는 것이 좋습니다. 프로세스는 다음과 같습니다.
프로젝트 개발자는 코드 푸시, 태그 지정 등의 작업을 통해 github의 웹훅을 트리거합니다.
Github은 웹훅 구성을 기반으로 배포 도구를 요청하고 릴리스 작업을 추가로 수행하도록 배포 도구에 알립니다.
배포 도구는 최신 코드를 코드 디렉터리로 가져오고, 스크립트나 명령을 통해 웹 프로젝트를 패키징하고, 새 웹 프로젝트 디렉터리를 생성하여 서버에 게시합니다.
이 경우 사용자의 사진은 git 코드 디렉터리가 아닌 서버의 프로젝트 디렉터리에 업로드되므로 업로드된 사진 업데이트에 대해 걱정할 필요가 없습니다.
또한 코드 저장소를 웹 프로젝트로 게시할 때 보안 문제가 있을 수 있습니다. 접근 권한이 제대로 제어되지 않으면 다른 사람이 귀하의 git 프로젝트에 있는 파일을 획득하여 일부 정보가 유출될 수 있습니다.
말씀하신 방법은 아주 좋은 방법입니다. 두 원격 창고는 서로 직접 통신할 수 없어 전송이 필요합니다.
물론 사용자 이미지, 캐시 등은 무시되어야 하며, 유효한 코드만 창고에 저장됩니다.
사실
으아아아.git
폴더에는 모든 정보가 담겨 있으니 직접 복사하셔도 됩니다. 하지만 git에는 이를 수행하는 명령이 있습니다이 작업은 기본적으로 다음 작업과 동일합니다.
으아아아그런 다음 얻은
my_project.git
을 베어 웨어하우스가 있는 서버에 업로드합니다(폴더 교체). Git 문서에 매우 자세한 소개가 나와 있습니다.Git-on-the-Server-Getting-Git-on -a-서버.
두 번째 질문의 경우, 리소스 파일, 문서 등을 포함하여 관리용 전체 프로젝트를 git에 추가하세요. 이렇게 하면 팀의 협업이 더 쉬워집니다. 하지만 컴파일로 생성된 파일은 포함하지 마세요. 이는 .gitignore를 통해 설정됩니다. 사진 업데이트 문제는 해당 사진이 이 프로젝트에 사용될 리소스라면 당연히 가져와야 하는데 문제가 없습니다.
프로젝트 아래 자동으로 생성된 IDE 구성을 버전 관리에 추가하는 팀도 있습니다. 팀원이 모두 동일한 IDE를 사용하는 경우 설정을 공유할 수 있습니다.
============
잠깐, 왜 "중앙 웨어하우스는 자동으로 푸시 코드를 웹 프로젝트에 동기화합니다", 실행중인 웹 서비스를 참고하시면 될 것 같고, 빌드 서버에는 수정되지 않은 로컬 웨어하우스가 있어야 할 것 같은데, 코드 웨어하우스
pull
에 적극적으로 제출한 다음 최신 코드를 기반으로 빌드를 시작하고 빌드 결과를 기반으로 웹 서비스 또는 패키지를 새로 고칩니다. 이 작업은 후크에 의해 실행될 수 있지만 공개 코드 저장소에서는 이를 시작해서는 안 됩니다push
.