힘내 원격 창고
Git에는 SVN과 같은 중앙 서버가 없습니다.
Git를 통해 코드를 공유하거나 다른 개발자와 공동 작업하려는 경우 현재 사용하는 Git 명령은 모두 로컬에서 실행됩니다. 그런 다음 다른 개발자가 연결할 수 있는 서버에 데이터를 저장해야 합니다.
이 예제에서는 Github를 원격 창고로 사용합니다. 먼저 Github 간결한 튜토리얼을 읽어보세요.
원격 저장소 추가
새 원격 저장소를 추가하려면 나중에 참조할 수 있도록 간단한 이름을 지정할 수 있습니다. 명령 형식은 다음과 같습니다.
git remote add [shortname] [url]
이 예제에서는 원격 저장소로 Github를 사용합니다. Github이 있으면 공식 웹사이트 https://github.com/에서 등록할 수 있습니다.
로컬 Git 저장소와 GitHub 저장소 간의 전송은 SSH를 통해 암호화되므로 확인 정보를 구성해야 합니다.
다음 명령을 사용하여 SSH 키를 생성합니다:
$ ssh-keygen -t rsa -C "youremail@example.com"
뒤에 your_email@youremail이 옵니다. com github에 등록한 이메일 주소로 변경하세요. 그런 다음 경로를 확인하고 비밀번호를 입력하라는 메시지가 표시됩니다. 기본 비밀번호를 사용하고 Enter를 누르세요. 성공하면 ~/ 아래에 .ssh 폴더가 생성됩니다. 들어가서 id_rsa.pub를 열고 내부에 키를 복사하세요.
github로 돌아가서 Account Settings에 들어가서 왼쪽에서 SSH Keys를 선택하고 Add SSH Key를 선택한 다음 원하는 대로 제목을 입력하고 컴퓨터에 생성된 키를 붙여넣습니다.
성공 여부를 확인하려면 다음 명령어를 입력하세요.
$ ssh -T git@github.com Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access.
다음 명령어는 Github에 성공적으로 연결되었음을 보여줍니다.
로그인 후 아래와 같이 "새 저장소"를 클릭하세요.
그런 다음 저장소 이름에 w3cschool.cc(원격 창고 이름)을 입력하세요. , 다른 기본 설정을 유지하고 "저장소 만들기" 버튼을 클릭하면 새 Git 저장소가 성공적으로 생성됩니다.
생성이 성공하면 다음 정보가 표시됩니다.
위 정보는 복제할 수 있음을 알려줍니다. 이 저장소 Warehouse에서 새 저장소를 생성하는 경우 로컬 창고의 콘텐츠를 GitHub 창고로 푸시할 수도 있습니다.
이제 GitHub의 프롬프트에 따라 로컬 저장소에서 명령을 실행합니다.
$ ls README w3cschoolphp中文网测试.txt test.txt $ git remote add origin git@github.com:tianqixin/w3cschool.cc.git $ git push -u origin master Counting objects: 21, done. Delta compression using up to 4 threads. Compressing objects: 100% (15/15), done. Writing objects: 100% (21/21), 1.73 KiB | 0 bytes/s, done. Total 21 (delta 4), reused 0 (delta 0) To git@github.com:tianqixin/w3cschool.cc.git * [new branch] master -> master Branch master set up to track remote branch master from origin.
Github 사용자 이름이 있기 때문에 제가 제공한 명령이 아닌 Github에서 새 저장소를 성공적으로 생성한 위치에 따라 다음 명령을 복사하세요. 그것들은 다르고 창고 이름도 다릅니다.
다음으로 Github에서 생성한 저장소로 돌아가면 파일이 Github에 업로드된 것을 볼 수 있습니다.
현재 원격 저장소 보기
현재 구성된 원격 저장소를 보려면 다음 명령을 사용할 수 있습니다. :
git remote
$ git remote origin $ git remote -v origin git@github.com:tianqixin/w3cschool.cc.git (fetch) origin git@github.com:tianqixin/w3cschool.cc.git (push)
-v 매개변수를 추가하면 각 별칭의 실제 링크 주소도 볼 수 있습니다.
원격 저장소 추출
Git에는 원격 저장소에서 업데이트를 추출하는 두 가지 명령이 있습니다.
1. 원격 웨어하우스에서 새 브랜치 및 데이터 다운로드:
git fetch
이 명령을 실행한 후 원격 브랜치에서 브랜치로 git merge를 실행해야 합니다.
2. 원격 저장소에서 데이터를 추출하고 현재 분기에 병합해 봅니다.
git pull
이 명령은 git fetch를 실행한 다음 git merge를 실행하여 원격 분기를 현재 있는 분기로 이동하는 것입니다.
원격 웨어하우스를 구성했고 업데이트된 데이터를 가져오려는 경우 먼저 git fetch [alias]를 실행할 수 있습니다. Git에게 자신이 가지고 있지 않은 데이터를 가져오도록 지시한 다음 git merge [alias]/[branch]를 수행하여 서버의 모든 업데이트를 병합할 수 있습니다(이 시점에서 누군가가 서버에 푸시했다고 가정). 현재 지점.
다음으로 Github에서 "w3cschoolphp Chinese network test.txt"를 클릭하고 온라인으로 수정합니다. 그런 다음 로컬에서 업데이트하고 수정합니다.
$ git fetch origin Warning: Permanently added the RSA host key for IP address '192.30.252.128' to the list of known hosts. remote: Counting objects: 3, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From github.com:tianqixin/w3cschool.cc 7d2081c..f5f3dd5 master -> origin/master
위의 정보 "7d2081c..f5f3dd5 master -> Origin/master"는 마스터 브랜치가 업데이트되었음을 나타냅니다. 다음 명령을 사용하여 업데이트를 로컬에 동기화할 수 있습니다.
$ git merge origin/master Updating 7d2081c..f5f3dd5 Fast-forward "w3cschool074107651703653075.txt" | 1 + 1 file changed, 1 insertion(+)
Push to the remote. Warehouse
새 브랜치 및 데이터를 원격 웨어하우스에 푸시합니다.
git push [alias] [branch]
위 명령은 [브랜치] 브랜치를 [별칭] 원격 웨어하우스의 [브랜치] 브랜치로 푸시합니다. 예는 다음과 같습니다.
$ git merge origin/master Updating 7d2081c..f5f3dd5 Fast-forward "w3cschool074107651703653075.txt" | 1 + 1 file changed, 1 insertion(+) bogon:w3cschoolcc tianqixin$ vim w3cschoolphp中文网测试.txt bogon:w3cschoolcc tianqixin$ git push origin master Everything up-to-date
원격 저장소 삭제
원격 저장소를 삭제하려면 다음 명령을 사용할 수 있습니다:
git remote rm [别名]
$ git remote -v origin git@github.com:tianqixin/w3cschool.cc.git (fetch) origin git@github.com:tianqixin/w3cschool.cc.git (push) $ git remote add origin2 git@github.com:tianqixin/w3cschool.cc.git $ git remote -v origin git@github.com:tianqixin/w3cschool.cc.git (fetch) origin git@github.com:tianqixin/w3cschool.cc.git (push) origin2 git@github.com:tianqixin/w3cschool.cc.git (fetch) origin2 git@github.com:tianqixin/w3cschool.cc.git (push) $ git remote rm origin2 $ git remote -v origin git@github.com:tianqixin/w3cschool.cc.git (fetch) origin git@github.com:tianqixin/w3cschool.cc.git (push)