运维开发网

单机上安装git,建立远程仓库,克隆远程仓库

运维开发网 https://www.qedev.com 2021-03-01 14:39 出处:51CTO 作者:六六天一
单机上使用git安装:yuminstall-ygit创建一个空目录,以这个空目录为当前目录mkdir/data/gitrootcd/data/gitroot[root@jinkai01~]#mkdir/data/gitroot[root@jinkai01~]#cd/data/gitroot初始化仓库gitinit[root@jinkai01gitroot]#gitinit初始化空的Git版本库于/

单机上使用git

安装:

yum install -y git

创建一个空目录,以这个空目录为当前目录

mkdir /data/gitroot

cd /data/gitroot

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

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

初始化仓库

git init

[root@jinkai01 gitroot]# git init

初始化空的 Git 版本库于 /data/gitroot/.git/

创建新文件并编辑内容

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

把a.txt加到仓库

git add a.txt

add完了必须要commit才算真正把文件提交到git仓库里,-m后面输入的是本次提交的说明,可以输入任意内容。

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

[master(根提交) cbaba01] new file a.txt

Committer: root <root@jinkai.1>

您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确

与否。您可以通过下面的命令对其进行明确地设置以免再出现本提示信息:

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

git config --global user.email you@example.com

设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:

git commit --amend --reset-author

1 file changed, 4 insertions(+)

create mode 100644 a.txt

再次更改a.txt

查看当前仓库中的状态,比如是否有改动的文件

git status

[root@jinkai gitroot]# vim a.txt

[root@jinkai gitroot]# git status

# 位于分支 master

# 尚未暂存以备提交的变更:

# (使用 "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

index 35fbd83..cc59506 100644

--- a/a.txt

+++ b/a.txt

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

aaa

bbb

ccc

-ddd //-号就是删除的

+ //+号就是新添加的

+eee

+fff

版本回退

多更改几次a.txt,然后add,commit

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

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

查看所有提交记录

git log

[root@jinkai gitroot]# git log

commit 1f120c286d46bb62013cfd6579dccf1856cf6c49

Author: root <root@jinkai.1>

Date: Thu Dec 10 22:43:56 2020 +0800

old file a.txt

commit cbaba019f9ddfa540a96d46835ab25e91b988b00

Author: root <root@jinkai.1>

Date: Thu Dec 10 22:42:10 2020 +0800

new file a.txt

简洁一行显示

git log --pretty=oneline

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

1f120c286d46bb62013cfd6579dccf1856cf6c49 old file a.txt

cbaba019f9ddfa540a96d46835ab25e91b988b00 new file a.txt

回退版本,其中后面跟的字符串是简写

git reset --hard ****

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

HEAD 现在位于 1f120c2 old file a.txt

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

1f120c286d46bb62013cfd6579dccf1856cf6c49 old file a.txt

cbaba019f9ddfa540a96d46835ab25e91b988b00 new file a.txt

如果想再次退回,但是忘记了前面的编码,可以使用下面的命令查找

git reflog查看所有历史版本

[root@jinkai gitroot]# git reflog

1f120c2 HEAD@{0}: reset: moving to 1f120c286d46bb62013cfd6579dccf1856cf6c49

5badc97 HEAD@{1}: commit: hahahah

1f120c2 HEAD@{2}: commit: old file a.txt

cbaba01 HEAD@{3}: commit (initial): new file a.txt

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

HEAD 现在位于 5badc97 hahahah

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

5badc97b5be29236b4db7cf2302474ae439bb0d1 hahahah

1f120c286d46bb62013cfd6579dccf1856cf6c49 old file a.txt

cbaba019f9ddfa540a96d46835ab25e91b988b00 new file 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文件修改,add后但没有commit,再想回退到上一次提交的状态,可以使用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] delete a.txt

1 file changed, 4 deletions(-)

delete mode 100644 a.txt

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

error: pathspec 'a.txt' did not match any file(s) known to git.

建立远程仓库

首先到 https://github.com 注册一个账号

单机上安装git,建立远程仓库,克隆远程仓库

单机上安装git,建立远程仓库,克隆远程仓库

新建仓库

右上角有一个加号new repository

名字自定义,比如叫jinkai-Linux 选择public 点 create repository

单机上安装git,建立远程仓库,克隆远程仓库

单机上安装git,建立远程仓库,克隆远程仓库

添加key:右上角点自己头像,选择settings,左侧选择SSH and GPG keys

左侧点New SSH key,把Linux机器上的~/.ssh/id_rsa.pub内容粘贴到这里

单机上安装git,建立远程仓库,克隆远程仓库

单机上安装git,建立远程仓库,克隆远程仓库

[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/TI8QYF2vf0RBbn82wHJ+X root@jinkai.1

单机上安装git,建立远程仓库,克隆远程仓库

把本地仓库推送到远程仓库

先本地建立一个仓库

[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

初始化空的 Git 版本库于 /tmp/jinkai-Linux/.git/

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

fatal: 路径 'READE.md' 未匹配任何文件

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

[master(根提交) d0000e6] first commit

1 file changed, 1 insertion(+)

create mode 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

Username for 'https://github.com': jinkai-Linux

Password for 'https://jinkai-Linux@github.com':

Counting objects: 3, done.

Writing objects: 100% (3/3), 215 bytes | 0 bytes/s, done.

Total 3 (delta 0), reused 0 (delta 0)

To https://github.com/jinkai-Linux/jinkai-Linux.git

* [new branch] main -> main

分支 main 设置为跟踪来自 origin 的远程分支 main。

单机上安装git,建立远程仓库,克隆远程仓库

下一次本地仓库更改后再推送,就可以直接 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"

[main 866e75f] hahaha

1 file changed, 3 insertions(+)

create mode 100644 a.txt

[root@jinkai jinkai-Linux]# git push

单机上安装git,建立远程仓库,克隆远程仓库

克隆远程仓库

单机上安装git,建立远程仓库,克隆远程仓库

[root@jinkai tmp]# cd /home/

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

正克隆到 'jinkai-Linux'...

remote: Enumerating objects: 6, done.

remote: Counting objects: 100% (6/6), done.

remote: Compressing objects: 100% (3/3), done.

remote: Total 6 (delta 0), reused 6 (delta 0), pack-reused 0

Unpacking objects: 100% (6/6), done.

在本地修改仓库内容:

[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"

[main 4da96e2] hhhhh

1 file changed, 1 insertion(+)

然后再推送到远程服务端:git push

[root@jinkai jinkai-Linux]# git push

远程端刷新查看多了添加的内容

远程服务端修改内容,然后下拉到自己的客户端:git pull

单机上安装git,建立远程仓库,克隆远程仓库

[root@jinkai jinkai-Linux]# git pull

remote: Enumerating objects: 5, done.

remote: Counting objects: 100% (5/5), done.

remote: Compressing objects: 100% (2/2), done.

remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0

Unpacking objects: 100% (3/3), done.

来自 https://github.com/jinkai-Linux/jinkai-Linux

4da96e2..6106cd6 main -> origin/main

更新 4da96e2..6106cd6

Fast-forward

README.md | 2 ++

1 file changed, 2 insertions(+)

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

# jinkai-Linux

abcdefghijk

111111

2222222

下拉到本地的内容已更新

知识扩展:

Github添加了SSH公钥,git push还是需要输入密码,解决方法如下:

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

machine github.com

login github-name(github用户名)

password password(登录密码)

0

精彩评论

暂无评论...
验证码 换一张
取 消