서버 측에 git 저장소를 만듭니다.
저는 큰 문제가 있어서 이 주제를 이해할 수 없어요.나는 웹사이트가 있는 서버를 가지고 있다.는 그곳에 a i i는그 i i i i i i i 。git init
가 만든 git add *
서버의 모든 파일을 저장소에 추가합니다.가 것보다commit
모든 파일을 저장소에 커밋합니다.
it it it it it it it it it it it로 한 것보다git clone ssh://username@mysite.com/wordpress/.git
제 지역 고객에게요.
모든 것이 잘 되었고 나는 내 프로젝트에서 복사본을 얻었다.요, 해서 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」commit
a push
파일 않았습니다 파일질라다른 방향에서 제가 서버상에서 뭔가를 바꿨을 때랑pulled
로컬 카피로 보내서 변경 사항을 확인했습니다.로컬 카피에서 변경한 내용이 서버에 표시되지 않는 이유를 알 수 있습니까?
도와주셔서 감사드려요!
로컬 머신과 서버가 모두 가져올 수 있는 중앙 저장소에 변경을 푸시해야 합니다(또는 서로 리모트로 추가해야 합니다).여기에는 GitHub 등의 서비스가 적합합니다.이 작업에 적합한 전체 워크플로우를 위한 지침은 다음과 같습니다.업데이트된 지침은 이 요약에서 확인할 수 있습니다.이 워크플로우는 서버에 대한 업데이트가 자동화되도록 후크를 사용하여 무거운 리프팅을 수행합니다.
Git을 사용한 라이브 웹 사이트 관리
개요
프리랜서로서 저는 많은 웹사이트를 만듭니다.추적해야 할 코드가 많이 바뀌었네요다행히 적절한 분기가 있는 Git 지원 워크플로우는 프로젝트 추적을 단시간에 수행할 수 있습니다.브랜치내의 개발 기능이나 사이트의 실가동 코드의 스냅샷을 간단하게 볼 수 있습니다.이 워크플로우에 추가된 좋은 점은 Git을 사용하여 변경을 커밋하면서 작업하는 여러 사이트에 업데이트를 푸시할 수 있다는 것입니다.
웹 사이트를 호스팅하고 싶은 서버뿐만 아니라 개발 기계에도 Git을 설치해야 합니다.이 프로세스는 로드 밸런서의 배후에 있는 미러와 같은 여러 서버에서 작동하도록 조정할 수도 있습니다.
패스워드리스 SSH 액세스 설정
라이브 웹 서버를 업데이트하기 위한 프로세스는 Git 환경 내에서 포스트 후크의 사용에 의존합니다.이것은 완전히 자동화되어 있기 때문에 리모트서버로의 SSH 접속을 확립하는 동안 로그인 credential을 입력할 수 없습니다.이 문제를 회피하기 위해 패스워드리스 SSH 액세스를 설정합니다.시작하려면 서버에 SSH를 연결해야 합니다.
ssh user@hostname
다음, '있다', '어울리다', '어울리다'가 확인해야 합니다.~/.ssh
이치노이치
mkdir ~/.ssh
Mac과 Linux에서는 터미널의 성능을 활용하여 두 가지 작업을 한 번에 수행할 수 있습니다.
if [ ! -d ~/.ssh ]; then mkdir ~/.ssh; fi
다음으로 공개 SSH 키가 아직 없는 경우 공개 SSH 키를 생성해야 합니다.에 있는 파일 목록~/.ssh
확인할 디렉토리.
ls -al ~/.ssh
찾으시는 파일의 이름은 보통 다음과 같습니다.id_rsa.pub
확실하지 않은 경우 새 파일을 생성할 수 있습니다.다음 명령어는 제공된 전자 메일을 라벨로 사용하여 SSH 키를 만듭니다.
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
모든 기본 설정을 유지하는 것이 좋습니다. a음음음음음음 named named named named named named named named named named named라는 파일이 생성됩니다.id_rsa
~/.ssh
이치노
프롬프트가 뜨면 안전한 SSH 패스프레이즈를 입력해 주세요.
SSH 키를 생성해야 하는 경우 SSH 키를 사용하도록 ssh-agent 프로그램을 구성해야 합니다.
ssh-add ~/.ssh/id_rsa
있는지 있는 는, 「」에 기존의 할 수 .~/.ssh
ssh-agent-agent에 키 .
무슨 일이 있는지 2개의 을 「」에 .~/.ssh
개인 키 파일과 공개 키 파일에 대응하는 디렉토리.일반적으로 공용 키는 .pub 확장자가 추가된 동일한 이름의 파일입니다.를 들어 인 ' 파일'을 들 수 있습니다.id_rsa
입니다.id_rsa.pub
.
로컬 머신에서 SSH 키를 생성하면 일치하는 공유 키 파일을 서버에 저장합니다.
ssh user@hostname 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
원격 서버의 인증 키에 공용 키가 추가됩니다.각 개발 머신에서 이 프로세스를 반복하여 서버에 필요한 수만큼 인증 키를 추가할 수 있습니다.암호를 입력하라는 메시지가 표시되지 않고 연결을 닫았다가 다시 연결하면 올바르게 수행되었음을 알 수 있습니다.
리모트 서버 저장소 설정
라이브 프로덕션 서버로 사용하고자 하는 머신에는 적절한 웹 액세스 디렉토리에 쓸 수 있는 Git 저장소가 있어야 합니다.Git 메타데이터(.git 디렉토리)는 웹 액세스 가능한 위치에 있을 필요가 없습니다.대신에, SSH 유저가 쓸 수 있는 장소를 지정할 수 있습니다.
베어 저장소 설정
파일을 웹 서버에 푸시하려면 웹 서버에 저장소 복사본이 있어야 합니다.먼저 웹 사이트를 저장할 빈 저장소를 만듭니다.리포지토리는 웹 루트 외부에 설정해야 합니다.나중에 Git에게 실제 파일을 어디에 둘지 지시하겠습니다.저장소의 위치를 결정하면 다음 명령을 통해 저장소가 생성됩니다.
mkdir mywebsite.git
cd mywebsite.git
git init --bare
베어 저장소에는 HEAD 없이 모든 Git 메타데이터가 포함됩니다.이것은 에 """가 을 의미합니다..git
디렉토리에는 체크 아웃된 작업 파일이 없습니다.깃을 들다 Git 훅은 사용자가 지시할 때마다 해당 파일을 체크아웃합니다.
git을 설정해야
GIT_DIR
의mywebsite.git
이치노
수신 후 후크 추가
「」라고 하는 합니다.post-receive
갈고리
#!/bin/sh
GIT_WORK_TREE=/path/to/webroot/of/mywebsite git checkout -f
후크를 작성하면 실행 가능한 파일로 표시합니다.
chmod +x hooks/post-receive
GIT_WORK_TREE
저장소의 작업 디렉토리가 어디에 있어야 하는지 Git에게 지시할 수 있습니다.이렇게 하면 웹 액세스 가능한 위치에 분리된 작업 트리를 사용하여 저장소를 웹 루트 외부에 유지할 수 있습니다.지정한 경로가 존재하는지 확인하십시오. Git git git git git git git git git git git git 。
로컬 개발 머신의 설정
로컬 개발 기계에는 웹 사이트 저장소가 포함됩니다.변경 내용을 푸시하도록 선택할 때마다 관련 파일이 라이브 서버에 복사됩니다.즉, 개발 시스템에 저장소의 작업 복사본을 유지해야 합니다.또한 GitHub이나 BitBucket과 같은 클라우드 기반 저장소를 포함한 중앙 집중식 저장소를 사용할 수도 있습니다.워크플로우는 전적으로 사용자에게 달려 있습니다.모든 변경은 로컬저장소에서 푸시되므로 이 프로세스는 프로젝트 처리 방법에 영향을 받지 않습니다.
작업 저장소 설정
당신의 개발 기계에는 Git 저장소가 작동해야 합니다.그렇지 않으면 다음 명령을 사용하여 기존 프로젝트 디렉터리에 를 생성할 수 있습니다.
git init
git add -A
git commit -m "Initial Commit"
웹 서버를 가리키는 원격 저장소 추가
작업 중인 리포지토리가 있으면 서버에 설정한 저장소를 가리키는 원격 저장소를 추가해야 합니다.
git remote add live ssh://server1.example.com/home/user/mywebsite.git
입력한 호스트 이름과 경로가 이전에 설정한 서버 및 저장소를 가리키는지 확인하십시오.마지막으로 현재 웹 사이트를 라이브 서버에 처음 푸시합니다.
git push live +master:refs/head/main
를 Git으로 하도록 지시합니다.live
는 보낼 (하다앞으로는 서버가 메인 브랜치에서만 체크아웃되므로 매번 명시적으로 지정할 필요가 없습니다.
아름다운 것을 만들다
모든 것이 준비되었다.창조적인 주스가 흐르도록 할 시간이다!워크플로우를 변경할 필요가 없습니다.준비가 되면 언제든지 다음 명령을 실행하는 것만으로 변경 내용을 라이브 웹 서버에 푸시할 수 있습니다.
git push live
★★
receive.denycurrentbranch
서버에서 "무시"하면 서버에서 체크아웃된 분기에 업데이트를 푸시할 때 Git의 최신 버전에서 발생하는 경고가 제거됩니다.
기타 힌트
다음은 이러한 유형의 워크플로우를 사용할 때 유용할 수 있는 몇 가지 팁과 요령입니다.
여러 서버에 대한 변경 푸시
복수의 서버에 푸시 할 필요가 있는 경우가 있습니다.테스트 서버가 여러 개 있거나 로드 밸런서의 배후에 있는 여러 서버 간에 라이브 사이트가 미러링되어 있을 수 있습니다.어떤 여러 을 URL에 .[remote "live"]
의 항을 참조해 주세요..git/config
.
[remote "live"]
url = ssh://server1.example.com/home/user/mywebsite.git
url = ssh://server2.example.com/home/user/mywebsite.git
하겠습니다.git push live
URL을 사용합니다.심!!
추적 대상 파일에 대한 로컬 변경 무시
때때로 저장소에서 추적하고 싶지만 웹 사이트를 업데이트할 때마다 변경하지 않으려는 파일이 있습니다.좋은 예로는 웹 사이트의 구성 파일을 들 수 있습니다.이 파일은 사이트가 있는 서버 고유의 설정을 가지고 있습니다.사이트에 업데이트를 푸시하면 일반적으로 개발 시스템에 있는 파일의 모든 버전으로 이러한 파일을 덮어씁니다.이것을 막는 것은 쉽다.원격 서버에 SSH하고 Git 저장소로 이동합니다.다음 명령을 입력하여 무시할 각 파일을 나열합니다.
git update-index --assume-unchanged <file...>
이것은 Git에게 향후 체크아웃 시 지정된 파일의 변경을 무시하도록 지시합니다.필요할 때마다 하나 이상의 파일에 대해 이 효과를 되돌릴 수 있습니다.
git update-index --no-assume-unchanged <file...>
무시된 파일 목록을 보려면 그것도 쉽습니다.
git ls-files -v | grep ^[a-z]
레퍼런스
push
코드를 입력하면 리모트저장소의 참조만 갱신됩니다.
체크아웃된 작업 복사본은 변경되지 않습니다.
동료의 저장소를 리모트로 추가할 수 있습니다.만약 당신이 밀어서 새로운 코드를 자동으로 체크 아웃하는 행동을 한다면, 그것은 그들이 작업 중인 것에 영향을 줍니다.
완전한 기능을 갖춘 것이든 단순히 git 훅에서 트리거된 rsync든 당신이 진정으로 원하는 것은 지속적인 통합 도구인 것처럼 들린다.
할 은, 「 」, 「 」뿐입니다.bare
경우는, 「 할 수 은, 「Push 할 수 있다)입니다.bare
★★★★★★★★★★★★★★★★★★」
안 요..git/
디렉토리로 이동합니다.
언급URL : https://stackoverflow.com/questions/40473094/create-a-git-repository-on-server-side
'programing' 카테고리의 다른 글
WooCommerce 작업 후크 및 템플릿 재정의 (0) | 2023.02.07 |
---|---|
Woocommerce에서 새 제품을 추가할 때 모든 제품 특성 자동 추가 (0) | 2023.02.07 |
PHP 5.4가 설치된 WordPress 3.7에서 엄격한 표준 오류 비활성화 (0) | 2023.02.07 |
Wordpress 플러그인의 클래스 내에서 $this를 사용하면 치명적인 오류가 발생하는 이유는 무엇입니까? (0) | 2023.02.07 |
Word Press:플러그인이 설치되어 있는지 확인합니다(ACF). (0) | 2023.02.07 |