Bootstrap

【Git学习】概念+原理+常用命令(简洁,快速上手)

本篇文章是我看完尚硅谷视频后作的总结,分享一下学习笔记。

        软件配置管理 (SCM) 是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护

        版本控制:软件版本,文件版本

版本控制软件的基础功能:

  1. 保存和管理文件

  2. 提供客户端工具进行访问

  3. 提供不同版本文件的比对功能

集中式版本控制:加锁,或者人工

分布式版本控制:本地仓库(git 的方式)

使用 GitHubDesktop 进行操作,不如命令行直接,功能较少

40 个 16 进制数字组成版本号,也叫做提交码,类似 0fe76556c1ec1c9125b8b20e0e0134e8f83daece

使用 SHA-1 算法,用于定位仓库种的文件,前 2 位作为文件夹,后 38 位作为文件名

        版本号的文件关联,一次操作产生多个版本号(使用 “git cat-file -p 版本号” 来安全查看文件内容)

        图中的箭头表示版本之间的关联,每一次操作都会产生新版本的文件,初始表示 .gitattributes 文件

        分支选择后,HEAD 文件自动更新,不同分支对应不同版本

        三个区域之间的简单关系

        命令大全:

配置

  • git -v:查看 git 的版本

  • git init:新建本地仓库,只有空的结构,不会新建 main 分支

    如果使用工具创建,会有默认的初始化提交,有 .gitattributes 文件

  • git clone 地址 (新名字):克隆远程仓库到本地,版本等完全一致(换名字)

  • git config (--global) user.name 名字:配置当前用户名(全局,config 文件)

  • git config (--global) user.email 邮箱:配置当前邮箱名(.gitconfig 文件)

区域

  • git status:查看暂存区的状态

  • git add 文件名:将文件从工作区添加到暂存区(未追踪 -> 暂存)

  • git rm --cached 文件名:将文件取消暂存,从暂存区移回工作区

  • git commit -m 描述:将文件从暂存区添加到存储区,也就是仓库中(暂存 -> 存储)

  • git log (--oneline):显示 commit 提交信息

恢复

  • git restore 文件名:恢复工作区中的文件,使其与暂存区的内容一致

  • git reset --hard 版本:重置暂存区和工作区,从存储区恢复到某个版本,其他全丢失

  • git revert 版本:还原到某个版本之前,那么这个版本号以及之后的提交都不会丢失

分支

  • git branch -v:查看所有分支,带*的是当前分支

  • git branch 分支名:前提是当前分支有内容,然后基于提交创建新分支

  • git checkout 分支名:切换分支

  • git checkout -b 分支名:将上述两步合并,创建分支并切换到它

  • git checkout -d 分支名:删除分支

  • git merge 分支名:必须先切换到主分支,将其他分支合并到当前分支

    此时产生冲突,就手动修改冲突文件,然后提交

标签

  • git tag 名称 版本号:为某次提交增加别名,也就是标签,替代版本号,更容易理解

  • git tag -d 名称:删除标签

远程仓库

  • git remote -v:显示所有远程仓库的简写名称以及对应的 URL

  • git remote add 名称 地址:把远程仓库添加到本地 Git 配置中,参数:远程仓库起名以及 url

  • git remote remove 名称:从本地 Git 配置中删除一个远程仓库

  • git remote rename 旧名称 新名称: 改变远程仓库的别名

  • git push 名称:将本地的提交推送到远程仓库,这里的名称是自己起的名

    如果使用 SSH,需要安全认证,那就上网查阅解决方案

  • git pull 名称:拉取远程仓库的内容

搭建自己的代码托管平台——GitLab

        在 Linux 系统中安装后,使用浏览器访问,输入网址 http://linux1/users/sign_in。初始账号是 root,密码在 /etc/gitlab/initial_root _password 文件中。

        创建项目,就相当于创建仓库。

        本质与 git 相同,只不过这里的虚拟机充当服务器,其他操作都一样。

;