나는 (내 개인 로컬 서버에서)자식모든 프로젝트를 업로드할 서버입니다. 구조는 다음과 같습니다.
myprojects
dir_project1
dir_project2
....
이제 해당 폴더에 있는 모든 항목을 어떻게 업로드할 수 있는지 알고 싶습니다. 그런 다음 만들고 싶은 각 프로젝트에 대해 서버에 로그인하고 프로젝트 폴더를 만들고 를 입력한 git init --bare
다음 (내 컴퓨터에서) 업로드해야 합니다. git push
서버에 가서 (매번) 실행할 각 프로젝트에 대한 폴더를 생성하고 명령을 실행하지 않고도 이 작업을 직접 수행할 수 있는 방법이 있습니까 git init --bare
?
감사해요
답변1
git clone <dir_project1>
먼저 해당 명령을 사용하여 기본 프로젝트를 복제한 다음 git checkout -b <new_branch_name>
해당 명령을 사용하여 새 분기를 만들고 해당 분기를 선택한 상태로 복제된 프로젝트 파일에서 작업해야 한다고 생각합니다 .
선택한 분기를 확인하려면 git checkout
사용 가능한 모든 분기가 나열되는 이 명령을 실행하세요(별표는 현재 작업 중인 분기를 나타냅니다).
새 분기가 체크아웃되면 프로젝트 디렉터리 변경을 시작할 수 있습니다. 지금 수행된 모든 변경 사항은 방금 생성한 분기를 통해 수행됩니다. 이렇게 하면 마스터 브랜치를 테스트하고 변경 사항을 마스터 브랜치에 커밋/병합할 것이라고 100% 확신할 때까지 마스터 브랜치를 수정하지 않습니다. (이 부분은 마지막에 다루겠습니다)
어떤 방식으로든(파일을 추가하거나 기존 파일/디렉토리를 수정) 디렉터리를 수정한 후에는 이 git add <insert_file_here.txt>
명령을 사용하여 이 파일을 변경했음을 git에 알립니다.
다음으로 변경 사항을 커밋하여 해당 브랜치에 영구적으로 적용해야 합니다. 일반적으로 첫 번째 커밋 전에 git config
사용자 이름이나 이메일이 포함된 정보를 사용하여 이러한 변경을 수행하는 사람이 누구인지 표시합니다.
전임자:git config --global user.email EMAIL
git config --global user.name “FULL NAME"
하지만 이 경우에는 모두 로컬이고 이 파일을 작업하는 유일한 사람인 것 같으므로 이 단계를 건너뛰고 첫 번째 로컬 커밋을 수행할 수 있습니다.
git commit -m "project.txt 파일의 첫 번째 초안"
(-m은 변경 사항을 설명하는 데 사용되며, 실행하면 표시됩니다 git diff <filename>
)
이제 푸시/풀(주로 원격 저장소의 경우)을 사용하는 대신 로컬 git 구성에 이 명령을 간단히 사용할 수 있습니다 git merge
.
복제된 리포지토리에서는 마스터 브랜치를 병합할 수 없으므로 병합을 시도하기 전에 먼저 마스터 브랜치를 체크아웃해야 합니다.
git checkout master
git merge dir_project1
그렇게 하려는 경우 로컬 지점으로 푸시하는 방법을 찾을 수 있습니다.
git push . dir_project1:master