단일 머신에 git 설치, 원격웨어 하우스 설정, 원격웨어 하우스 복제

단일 머신에서 git 사용

설치:

yum install -y git

빈 디렉터리를 만들고이 빈 디렉터리를 현재 디렉터리로 사용합니다.

mkdir / data / gitroot

cd / 데이터 / gitroot

[root @ jinkai01 ~] # mkdir / data / gitroot

[root @ jinkai01 ~] # cd / data / gitroot

창고 초기화

자식 초기화

[root @ jinkai01 gitroot] # git init

/data/gitroot/.git/에서 빈 Git 저장소를 초기화합니다.

새 파일 생성 및 콘텐츠 편집

echo -e "aaa \ nbbb \ nccc"> a.txt

창고에 a.txt 추가

git add a.txt

추가가 완료된 후 실제로 git Warehouse에 파일을 제출하기 위해서는 commit이 필요합니다. -m 이후의 입력은이 제출에 대한 설명이며 모든 내용을 입력 할 수 있습니다.

[root @ jinkai gitroot] # git commit -m "new file a.txt"

[마스터 (루트 제출) cbaba01] 새 파일 a.txt

커미터 : root <[email protected]>

사용자의 이름과 이메일 주소는 로그인 이름과 호스트 이름에 따라 자동으로 설정됩니다. 정확한지 확인하십시오

아님. 이 프롬프트 메시지를 다시 방지하려면 다음 명령을 사용하여 명시 적으로 설정할 수 있습니다.

git config --global user.name "Your Name"

git config --global user.email [email protected]

설정 후 다음 명령을 사용하여이 제출에 사용되는 사용자 ID를 수정할 수 있습니다.

git commit --amend --reset-author

1 개 파일 변경, 4 개 삽입 (+)

생성 모드 100644 a.txt

a.txt를 다시 변경하십시오.

변경된 파일이 있는지 여부 등웨어 하우스의 현재 상태를 확인합니다.

자식 상태

[root @ jinkai gitroot] # vim a.txt

[root @ jinkai gitroot] # git status

# 브랜치 마스터에 위치

# 제출을 위해 아직 준비되지 않은 변경 사항 :

# (제출할 내용을 업데이트하려면 "git add <file> ..."을 사용하십시오.)

# ( "git checkout-<file> ..."을 사용하여 작업 공간의 변경 사항을 취소하십시오.)

#

# 수정 : a.txt

#

수정 사항이 커밋에 추가되지 않았습니다 ( "git add"및 / 또는 "git commit -a"사용).

이번에는 a.txt에서 수정 된 내용을 비교하고웨어 하우스의 버전을 비교할 수 있습니다.

git diff a.txt

[root @ jinkai gitroot] # git diff a.txt

diff --git a / a.txt b / a.txt

색인 35fbd83..cc59506 100644

--- a / a.txt

+++ b / a.txt

@@ -1,4 +1,6 @@

aaa

bbb

ccc

-ddd //-번호가 삭제됨

+ // + 기호가 새로 추가되었습니다.

+ eee

+ fff

버전 롤백

a.txt를 여러 번 변경 한 다음 추가, 커밋

[root @ jinkai gitroot] # git add a.txt

[root @ jinkai gitroot] # git commit -m "old file a.txt"

모든 제출 기록보기

자식 로그

[root @ jinkai gitroot] # git log

커밋 1f120c286d46bb62013cfd6579dccf1856cf6c49

작성자 : root <[email protected]>

날짜 : Thu Dec 10 22:43:56 2020 +0800

이전 파일 a.txt

커밋 cbaba019f9ddfa540a96d46835ab25e91b988b00

작성자 : root <[email protected]>

날짜 : Thu Dec 10 22:42:10 2020 +0800

새 파일 a.txt

간결한 단선 디스플레이

git log --pretty = oneline

[root @ jinkai gitroot] # git log --pretty = oneline

1f120c286d46bb62013cfd6579dccf1856cf6c49 이전 파일 a.txt

cbaba019f9ddfa540a96d46835ab25e91b988b00 새 파일 a.txt

뒤에 오는 문자열이 축약 된 대체 버전

git reset --hard ****

[root @ jinkai gitroot] # git reset --hard 1f120c2

HEAD는 이제 1f120c2 이전 파일 a.txt에 있습니다.

[root @ jinkai gitroot] # git log --pretty = oneline

1f120c286d46bb62013cfd6579dccf1856cf6c49 이전 파일 a.txt

cbaba019f9ddfa540a96d46835ab25e91b988b00 새 파일 a.txt

다시 돌아가고 싶지만 이전 코드를 잊어 버린 경우 다음 명령을 사용하여 찾을 수 있습니다.

git reflog 모든 이전 버전보기

[root @ jinkai gitroot] # git reflog

1f120c2 HEAD @ {0} : 재설정 : 1f120c286d46bb62013cfd6579dccf1856cf6c49로 이동

5badc97 HEAD @ {1} : 커밋 : hahahah

1f120c2 HEAD @ {2} : 커밋 : 이전 파일 a.txt

cbaba01 HEAD @ {3} : 커밋 (초기) : 새 파일 a.txt

[root @ jinkai gitroot] # git reset --hard 5badc97

HEAD는 이제 5badc97 hahahah에 있습니다.

[root @ jinkai gitroot] # git log --pretty = oneline

5badc97b5be29236b4db7cf2302474ae439bb0d1 hahahah

1f120c286d46bb62013cfd6579dccf1856cf6c49 이전 파일 a.txt

cbaba019f9ddfa540a96d46835ab25e91b988b00 새 파일 a.txt

편집 취소

실수로 a.txt를 삭제했습니다.

rm -f a.txt

a.txt 복원

git checkout-a.txt

[root @ jinkai gitroot] # rm -rf a.txt

[root @ jinkai gitroot] # git checkout

D a.txt

[root @ jinkai gitroot] # git checkout-a.txt

[root @ jinkai gitroot] # ls

a.txt

a.txt 파일이 수정되었지만 추가 후 커밋이없고 마지막으로 제출 된 상태로 돌아가려면 git reset HEAD a.txt를 사용한 다음 git checkout-a.txt를 실행할 수 있습니다.

[root @ jinkai gitroot] # vim a.txt

[root @ jinkai gitroot] # cat a.txt

aaa

bbb

ccc

[root @ jinkai gitroot] # echo ddd >> a.txt

[root @ jinkai gitroot] # cat a.txt

aaa

bbb

ccc

ddd

[root @ jinkai gitroot] # git add a.txt

[root @ jinkai gitroot] # git reset HEAD a.txt

재설정 후 대기 장소에서 철회하기위한 변경 사항 :

M a.txt

[root @ jinkai gitroot] # git checkout-a.txt

[root @ jinkai gitroot] # cat a.txt

aaa

bbb

ccc

파일을 지우시오

git rm 2.txt

파일이 삭제되었지만 라이브러리에서 삭제되지 않았습니다. 다음 명령을 사용하여 라이브러리에서 파일을 삭제하십시오.

git commit -m "rm 2.txt"

[root @ jinkai gitroot] # git rm a.txt

rm 'a.txt'

[root @ jinkai gitroot] # ls

[root @ jinkai gitroot] # git commit -m "delete a.txt"

[master 6027f5c] a.txt 삭제

1 개 파일 변경, 4 개 삭제 (-)

삭제 모드 100644 a.txt

[root @ jinkai gitroot] # git checkout-a.txt

오류 : pathspec 'a.txt'가 git에 알려진 파일과 일치하지 않습니다.

원격 창고 구축

먼저 https://github.com으로 이동 하여 계정 등록하십시오.

img img

새 창고

오른쪽 상단 모서리에 더하기 기호 새 저장소가 있습니다.

jinkai-linux와 같은 이름을 사용자 지정하고 public을 선택한 다음 저장소 만들기를 클릭합니다.

img

img

키 추가 : 오른쪽 상단 모서리에서 아바타를 클릭하고 설정을 선택한 다음 왼쪽에서 SSH 및 GPG 키를 선택합니다.

왼쪽의 새 SSH 키를 클릭하고 여기에 Linux 시스템에 ~ / .ssh / id_rsa.pub의 내용을 붙여 넣으십시오.

img img

[root @ jinkai gitroot] # ssh-keygen

[root @ jinkai gitroot] # cat /root/.ssh/id_rsa.pub

SSH-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQDMiw64fA0 / 5yaTC25IjgM2MzNZhAxtdWJhujGgAoZLcIsbfYKBlVKzURj9KURhrZQlprbX4LgfyfAuZnIXYQxIQWoWufc6P + cbLJjydR36ROPmHx9BYN7Jf405LVf06S / 1W9dirpJd3HxYTh3cxxQXKrw0 / sJgfeBGQh4D / Y zCSlNfuAsV5D + + + VwjVciCrv27TVL7tNaYCBv4v MYUOjvm / jtBHBWwTmhRhV2tGVdKAP0TkuK7mM19UapsV / 1LW9fwDptgyedf236fAaf5EM5cXpqXHR5p1 hueLP8Ya4rOsarmSISFVwQyl1kCSnj7b + / + X TI8QYF2vf0RBbn82wHJ [email protected]

img

로컬 창고를 원격 창고로 푸시

먼저 지역에 창고를 건설하십시오.

[root @ jinkai gitroot] # mkdir / tmp / jinkai-linux

[root @ jinkai gitroot] # cd! $

cd / tmp / jinkai-linux

[root @ jinkai jinkai-linux] # echo "# jinkai-linux">> README.md

[root @ jinkai jinkai-linux] # git init

/tmp/jinkai-linux/.git/에서 빈 Git 저장소를 초기화합니다.

[root @ jinkai jinkai-linux] # git add READE.md

치명적 : 'READE.md'경로가 어떤 파일과도 일치하지 않습니다.

[root @ jinkai jinkai-linux] # git commit -m "first commit"

[마스터 (루트 커밋) d0000e6] 첫 번째 커밋

1 개 파일 변경, 1 개 삽입 (+)

생성 모드 100644 README.md

[root @ jinkai newfile] # git branch -M main

이 단계는 원격으로 새로운 창고 jinkai-linux를 만드는 것입니다.

git remote add origin https://github.com/jinkai-linux/jinkai-linux.git

그런 다음 로컬 창고를 원격으로 밀어

git push -u origin main

[root @ jinkai jinkai-linux] # git remote add origin https://github.com/jinkai-linux/jinkai-linux.git

[root @ jinkai jinkai-linux] # git push -u origin main

' https://github.com '의 사용자 이름 : jinkai-linux

' https : //[email protected] '의 비밀번호 :

물체 세기 : 3, 완료.

개체 쓰기 : 100 % (3/3), 215 바이트 | 0 바이트 / 초, 완료.

총 3 (델타 0), 재사용 0 (델타 0)

https://github.com/jinkai-linux/jinkai-linux.git

* [새 브랜치] 메인-> 메인

지점 메인은 원점에서 원격 지점 메인을 추적하도록 설정됩니다.

img

다음 로컬 창고 변경 후 다시 푸시하면 직접 git push

[root @ jinkai jinkai-linux] # vim a.txt

[root @ jinkai jinkai-linux] # git add a.txt

[root @ jinkai jinkai-linux] # git commit -m "hahaha"

[메인 866e75f] 하하하

1 개 파일 변경, 3 개 삽입 (+)

생성 모드 100644 a.txt

[root @ jinkai jinkai-linux] # git push

img

원격웨어 하우스 복제

img

[root @ jinkai tmp] # cd / home /

[root @ jinkai home] # git clone https://github.com/jinkai-linux/jinkai-linux.git

'jinkai-linux'로 복제 중 ...

원격 : 개체 열거 : 6, 완료.

원격 : 개체 계수 : 100 % (6/6), 완료.

원격 : 개체 압축 : 100 % (3/3), 완료.

원격 : 총 6 개 (델타 0), 재 사용됨 6 (델타 0), 팩 재 사용됨 0

개체 포장 풀기 : 100 % (6/6), 완료.

웨어 하우스의 내용을 로컬로 수정하십시오.

[root @ jinkai jinkai-linux] # vim README.md

[root @ jinkai jinkai-linux] # cat README.md

# jinkai-linux

abcdefghijk

[root @ jinkai jinkai-linux] # git add README.md

[root @ jinkai jinkai-linux] # git commit -m "hhhhh"

[메인 4da96e2] hhhhh

1 개 파일 변경, 1 개 삽입 (+)

그런 다음 원격 서버로 푸시합니다. git push

[root @ jinkai jinkai-linux] # git push

더 많은 추가 콘텐츠를 보려면 원격에서 새로 고침

원격 서버의 콘텐츠를 수정 한 다음 자신의 클라이언트에 드롭합니다. git pull

img

[root @ jinkai jinkai-linux] # git pull

원격 : 개체 열거 : 5, 완료.

원격 : 개체 계수 : 100 % (5/5), 완료.

원격 : 개체 압축 : 100 % (2/2), 완료.

원격 : 총 3 (델타 0), 재사용 0 (델타 0), 팩 재사용 0

개체 포장 풀기 : 100 % (3/3), 완료.

에서 https://github.com/jinkai-linux/jinkai-linux

4da96e2..6106cd6 메인-> 원점 / 메인

업데이트 4da96e2..6106cd6

빨리 감기

README.md | 2 ++

1 개 파일 변경, 2 개 삽입 (+)

[root @ jinkai jinkai-linux] # cat README.md

# jinkai-linux

abcdefghijk

111111

2222222

로컬에 드롭 된 콘텐츠가 업데이트되었습니다.

지식 확장 :

Github에서 SSH 공개 키를 추가했지만 git push에는 여전히 비밀번호가 필요합니다. 해결 방법은 다음과 같습니다.

[root @ jinkai newfile] # cat /root/.netrc

기계 github.com

로그인 github-name (github 사용자 이름)

비밀번호 비밀번호 (로그인 비밀번호)

추천

출처blog.51cto.com/11451960/2640803