저는 학생이고 여러 반 친구들과 함께 개발을 하고 있으며 git을 사용할 계획입니다
현재 git은 베어웨어하우스를 구축했고, Hooks를 웹 프로젝트에 자동으로 동기화할 수 있습니다.
서버에 있는 코드는 웨어하우스가 아니기 때문에 이제 원래 다른 서버에 있던 코드를 베어 웨어하우스로 가져온 다음 팀원들이 풀링하도록 하려고 합니다. 어떻게 하나요? 제가 생각해낸 방법은 먼저 코드를 로컬 영역으로 풀한 다음 로컬 영역에서 중앙 창고로 푸시하는 것이었습니다. 자동 동기화로 인해 중앙 웨어하우스는 푸시된 코드를 웹 프로젝트에 자동으로 동기화합니다. 하지만 개인적으로 더 나은 방법이 있어야 한다고 생각합니다. 알려주세요?
그리고 프로젝트 전체에 일반 git 저장소를 사용하나요? 아니면 프로젝트의 일부인가요? 전체 프로젝트이고 사용자가 사진을 업로드하는 경우 업로드된 사진은 업데이트될 때마다 로컬로 업데이트되어야 하지 않나요?
오랫동안 정보를 찾아봤는데 이 부분에 대한 정보가 거의 없네요. 자세한 설명 부탁드립니다.
============================
안녕하세요. 현재 저희 팀 프로젝트에 문제가 있습니다. 5.1 프로젝트 중 버그가 있어서 같은 반 친구가 집에서 버그를 수정했는데, 컴퓨터에 git이 설치되어 있지 않아서 ftp를 이용해 업로드했습니다. . 이제 ftp를 사용하여 업로드하므로 중앙 창고를 사용하지 않으므로 후크의 사후 수신이 트리거되지 않으며 웹 사이트 프로젝트에 사후 수신이 푸시되지 않습니다. (조금 복잡합니다. 이해해 주실 수 있기를 바랍니다.) , 이제 그가 업로드한 부분을 git을 사용하여 가져오는 것이 불가능합니다. 그래서 이제 문제는 후크를 하나 더 작성해야 한다는 것입니다. 일단 웹사이트 프로젝트가 변경되면(ftp로 업로드된 경우) 중앙 창고로 끌어온 다음 로컬에서 얻을 수 있습니다. 중앙 창고와 웹 사이트 프로젝트가 양방향으로 동기화될 수 있는지 확인하십시오. 어쩌면 우리의 접근 방식이 별로 좋지 않을 수도 있지만, 당분간은 이것밖에 할 수 없습니다. 물론 마스터가 더 나은 방법을 제공해주기를 바랍니다. 다시 한 번 감사드립니다
문제 설명이 명확하지 않아서 제가 이해한 대로 간략하게 설명하겠습니다.
코드를 마이그레이션하는 방법은 문제가 되지 않습니다.
일반적으로 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
.