Git的简单使用

如何提升github的访问速度

一、git的常用操作

1.安装 sudo apt install git
2.查看Git的版本 git version
3.git分类

  • 集中式 如svn
    在这里插入图片描述
    集中式git中,过度依赖服务器,a,b,c中只存在最新的版本,如果服务器出现故障,以前的版本就找不到了。
  • 分布式git

在这里插入图片描述
每个主机都存在历史版本。

二、git的基本概念

2.1git分区(四个工作区)

git本地有三个工作区:工作区(working directory)、暂存区(stage/index)、仓库(repository)。再加上远程服务器上的git仓库(remote directory)就成为了四个区域。

在这里插入图片描述
在这里插入图片描述

  • 工作区(worlspace):平常放代码的地方。
  • Index/stage:暂存区,临时存放的改动,事实上它就是一个文件,保存即将要存放的代码。
  • Repository:仓库区,是本地的一个仓库,存放最终提交的项目版本。这里面有你提交到所有版本的数据。其中HEAD指向最新仓库的版本
  • Remote: git远程服务器的仓库,托管代码的服务器,就如github,gitee之类的。

2.2工作流程

1.在工作目录中添加,修改文件

  • 将需要进行版本管理的文件放入暂存区
  • 将暂存区的文件提交到git仓库

2.3文件的四种状态

使用 git status查看状态

  • Untracked: 未跟踪:此文件在文件夹中,即在工作区。 但并没有加入到git库, 不参与版本控制. 通过git add filename 状态变为Staged.
    创建一个文件hello.cpp.- Unmodify: 文件已经入库, 未修改。 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm filename移出版本库, 则成为Untracked文件。- Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add filename可进入暂存staged状态, 使用git checkout 则丢弃修改过,返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改.
  • Staged: 暂存状态. 执行git commit -m '描述'则将修改同步到库中, 这时库中的文件和本地文件又变为一致,文件为Unmodify状态. 执行git reset HEAD filename取消暂存,文件状态为Modified.
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

三、git命令

创建本地仓库

1.创建一个目录

2.初始化仓库

使用git init使其成为一个可以通过git管理的仓库

第一次使用需要设置用户名和邮箱

stu@stu-virtual-machine:~/myproject$ git config --global user.email "you@126.com" 
stu@stu-virtual-machine:~/myproject$ git config --global user.name "youname"

3.git add filename

将文件添加到暂存区

4. git commit -m ‘版本描述信息’

提交版本到仓库

5.git status 查看仓库状态

6.git log 查看提交的历史记录

只记录当前版本及之前的版本的记录
修改hello.cpp,添加打印功能
在这里插入图片描述

7.git reflog 查看对仓库的操作日志

记录对仓库的操作的记录 每次的操作都会记录
在这里插入图片描述

8.git reset --hard HEAD^ 回退版本

在这里插入图片描述

9. git reset --hard 版本号 回退到对应的版本号

在这里插入图片描述

10.git diff 比较差异

git diff 比较与当前版本
git diff HEAD^ 比较与上一个版本
git diff 版本号 比较与版本号对应的版本
在这里插入图片描述
在这里插入图片描述

11.git checkout filename 放弃对工作区代码的修改

可以和git diff 在一起使用,我们可以看到修改的代码,如果不想修改,就使用这个命令。就是将仓库中的最新版本覆盖工作区。
在这里插入图片描述

12.git reset HEAD filename 从暂存区中撤销

在这里插入图片描述

13.git rm filename 删除一个文件

此时提交到缓存区,需要commit之后才能在版本库中删除。
在这里插入图片描述
在这里插入图片描述

四、分支

默认为master分支,可以建立不同的分支开发不同的版本。也可以合并分支。
在这里插入图片描述

1. 查看分支:git branch

2.创建分支:git branch 分支名

3.切换分支:git checkout 分支名

在这里插入图片描述

4.创建并切换分支:git checkout -b 分支名

在这里插入图片描述

5.删除分支:git branch -d 分支名

不能删除当前所在的分支,要切换到其他分支之后才能进行删除
在这里插入图片描述

6.合并某个分支到当前分支:git merge 分支名

如果同时在两个分支都修改了内容,会产生冲突。要人工进行修改。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从上面的图可以看出,我们只能在master中看到合并后的版本,在topic中看不到。
在这里插入图片描述
在这里插入图片描述

注意:
在这里插入图片描述
在这里插入图片描述

7.以图表的方式显示log: git log --graph

8.保护现场:git stash

9.列出所有保存现场的信息:git stash list

10.取出某次的现场信息:git stash pop “stash@{1}”

默认是最近的一次,如果有多个现场,可以加上编号“stash@{1}”来指定获取某一个。不同的分支的现场,要回到对应的分支再获取,否则会自动合并到当前分区的工作区。
当工作区有代码修改的时候是不能切换分支的要先保存现场,再进行切换。
在这里插入图片描述
在这里插入图片描述

五、远程仓库操作

在这里插入图片描述

操作一

添加公钥

打开gitee -> 【设置】-> 【ssh公钥】
在这里插入图片描述

如何获取公钥?

首先,在终端输入 ssh-keygen -t rsa -C "xxxx@qq.com".

jqw@jqw-virtual-machine:~$ ssh-keygen -t rsa -C "2771856863@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jqw/.ssh/id_rsa):         
Created directory '/home/jqw/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/jqw/.ssh/id_rsa
Your public key has been saved in /home/jqw/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:GHmf5EjJ2z/FEjokqyxLeFCrveTjq2gLi4/FQmzapno 2771856863@qq.com
The key's randomart image is:
+---[RSA 3072]----+
|                 |
|       o .       |
|    . o * o .    |
|.  . . = @ o o   |
| +. . . S B . o  |
|+o = . .   o o   |
|+ B * o     o    |
|oXE=.+       .   |
|X++o*o           |
+----[SHA256]-----+

进入/home/jqw/.ssh目录,查看 id_rsa.pub文件中的内容就是公钥。

jqw@jqw-virtual-machine:~/.ssh$ cat id_rsa.pub

在gitee中添加公钥之后,服务器就把公钥保存了。

在这里插入图片描述

测试连通是否成功

命令:ssh -T git@gitee.com or ssh -T git@github.com

jqw@jqw-virtual-machine:~/.ssh$ ssh -T git@gitee.com
Hi Jqivin! You've successfully authenticated, but GITEE.COM does not provide shell access.

jqw@jqw-virtual-machine:~/.ssh$ ssh -T git@github.com
Hi Jqivin! You've successfully authenticated, but GitHub does not provide shell access.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值