git基础命令

81 阅读5分钟

Git常用命令

1. 查看和获取信息

  • 查看文件提交信息及获取文件状态版本号:

    git cat-file -p 文件版本名
    

    image.png

    image.png

  • 获取文件信息:

    git cat-file -p 文件状态版本号(tree)//即tree所标识的版本号
    

    image.png

    通过查询tree所标识的版本号,可以获得被查看文件的文件名和后缀,即指向了文件本身

    获取文件内容:

    git cat-file -p 文件版本号//即二次查询出来的版本号
    

    image.png

    即可查询到文件的内容

  • 版本号关联图:

    image.png

    add指令和commit指令下文件存储过程

    image.png

2. 初始化与克隆

  • 初始化本地仓库:

    git init
    
  • 克隆云端仓库:

    git clone 仓库地址 [重命名]
    

3. 配置

  • 配置当前仓库:

    用于标识该仓库的作者信息等

    git config 配置项 配置值
    git config user.name rice
    git config user.email 12345@163.com
    

    image.png

    配置信息可以在仓库内的.git文件夹下的config文件中查看

    image.png

  • 配置全局:

    git config --global 配置项 配置值
    //config仅设置当前仓库,加上--global表示所有仓库均进行设置
    

4. 文件状态和存储过程

  • 查看暂存区状态: 将工作区和暂存区进行比对,查看当前是否存在修改后没有提交的文件

    git status
    

    image.png

    当我们在代码仓内完成文件的更改时

    image.png

  • 将文件从工作区放到暂存区:

    git add 文件名
    

    image.png

    此时我们再次使用 git status命令

    image.png

    发现我们的修改已经被提交

  • 将文件从暂存区移动到工作区: 提交了错误文件,取消提交

    git rm --cached 文件名
    

    image.png

    重新status查询,发现文件已经被转移至工作区

    image.png

  • 新增文件到存储区:

    git commit -m "操作备注"
    

    首先要将文件通过 git add 提交到暂存区

    image.png

    随后使用 git commit -m 将文件保存到本地仓库内

image.png

5. 查看操作记录

  • 查看文件的操作记录:

    git log
    

    image.png

  • 一行显示操作记录:

    git log --oneline
    

    image.png

6. 恢复与重置

  • 将文件从存储区返回到工作区: (在commit到本地仓库之前将误删除的文件恢复)

    git restore 文件名
    

    新建一个文件2 并将该文件通过add提交到暂存区

    image.png

    此时不小心把文件2删除掉

    image.png

    这时候使用git restore 将文件2恢复

    image.png

    如果我们将文件2删除后执行了commit操作

    image.png

    那么使用restore是不能将文件2恢复的

    image.png

  • 重置仓库到指定版本: 回档操作

    git reset --hard 上一个版本号
    

当我们做了一些严重的误操作后,可以将代码仓进行回档

首先通过 git log 获取到提交的hash(commit所表示的值)

这里可以看到我们一共进行了提交和删除两次操作,这时候我们要将本地仓库回档到提交后的时刻(即删除的上一次操作)

commit: 00f874e1609d925f7547ced8a00fa36c79efeb15

image.png

使用git reset --hard 00f874e1609d925f7547ced8a00fa36c79efeb15

image.png

我们可以看到文件被恢复了

注意:该操作会将提交文件2之后的所有操作全部撤销,并且git log 无法查询到本次reset操作,所以谨慎使用

  • 撤销本次提交

    git revert 需要撤销的操作的commit

    同样的,我们再次删除文件2

    image.png

    使用git revert eca2466d42634020e1d88bf245e1473efe5355bd 可以撤销本次删除操作,比reset安全

    image.png

7. 分支操作

  • 查看分支:

    git branch
    

    image.png

  • 创建分支: 如果是用命令行进行的仓库初始化,那么创建分支前需要先手动提交一个文件(随便一个文档即可),在有了主分支后,才可以进行其他分支的创建

    git branch 分支名称
    

    image.png

  • 切换分支:

    git checkout 分支名
    

    image.png

  • 切换并创建分支:

    git checkout -b 分支名
    

    image.png

  • 删除分支:

    git branch -d 分支名
    

    image.png

  • 合并分支:

    git merge 分支名
    

    分支master中有两个文件,并且文件2中的内容是222

    image.png

    分支test1中有三个文件,并且文件2的内容是222 333

    image.png

    现在我们切换到分支master中,并将分支test1中的内容合并到master中

    image.png

    分支test1的内容被合并到master中

8. 标签操作

  • 给操作添加别名标签:

    git tag 标签名 版本号
    

    image.png

    使用该hash值时可以用别名 add 进行替代

    image.png

  • 查看当前标签:

    git tag
    

    image.png

  • 删除标签:

    git tag -d 标签名
    

    image.png

9. 远程仓库操作

  • 关联远程仓库:

    git remote add 自定义名称 远程仓库地址
    //可以在.git文件夹下的config文件中查看关联的地址
    

    image.png

  • 删除远程仓库:

    git remote remove 名称
    

    image.png

  • 修改远程仓库名称:

    git remote rename 原名称 新名称
    

    image.png

  • 上传本地内容到远程仓库:

    git push 远程仓库名称
    

    远程仓库内仅有index.html一个文件

    image.png

    本地仓库内新增了一个文件

    image.png

    将文件add并commit后,进行push操作

    image.png

    远程仓库中也出现了这个文件

    image.png

  • 拉取远程仓库内容:

    git pull 远程仓库名称 分支名称
    

在远程仓库中修改刚刚上传的文件

image.png

提交后,用pull命令,让本地仓库拉取远程仓库中更新后的内容

image.png

本地仓库中的1.txt的内容与远程仓库同步

  • 加密仓库地址生成秘钥

    ssh-keygen -t rsa -C
    

    远程仓库的地址有ssh加密的时候,是无法直接push的,需要使用这个命令生成秘钥

    秘钥会被保存在本地

    image.png

    找到这个文件夹获取秘钥

    我这里使用的是gitee,通过gitee的设置页面,提交ssh公钥,提交公钥后即可向远程仓库中push内容

image.png