Git指令学习个人记录

简介: Git指令学习个人记录

Git 是一个免费和开源的 分布式版本控制系统,旨在以速度和效率处理从小型到大型项目的所有内容。Git易于学习, 占用空间小,性能快如闪电。它优于 SCM 工具,如 Subversion、CVS、Perforce 和 ClearCase,具有廉价的本地分支、方便的暂存区域和 多个工作流等功能。注意:Git是一个版本控制工具,GitHub是一个用Git做版本控制的项目托管平台。

一、Git官网及下载安装教程

Git官网:点击打开Git官网

Git安装教程:点击打开《Git - Windows上安装》文章

二、学习文章(建议仔细阅读并理解)

三、Git部分命令及案例个人理解

  • 首先自行创造一个Git项目环境,那么必先创建选择好本地Git项目路径(博主举例如下图)。

  • 打开Git Bash控制台。

  • 把当前位置从根目录移动到之前已经选择好本地Git项目路径(博主的本地Git项目路径绝对路径为F:/gitproject/Myproject/test)。
cd /本地Git项目路径绝对路径

  • Git项目环境初始化。
git init

  • 可以在Git项目中生成文件如字符串内容str文件(博主创建了两个txt文本文件)。
echo str > file

  • 将生成或者修改后的文件添加到Git环境的索引区或者暂存区,注意:项目中.git/objects此时开始生成。
git add 需要添加到暂存区的文件(可采用正则表达式)

  • 注意:git log 命令必须等到commits之后才行,仅仅存放到暂存区的文件无法查询(见下图)。

  • 查看项目中.git/objects路径文件下已经添加到暂存区文件的存储哈希值H。
find .git/objects

  • 上一步执行后都可以进一步根据objects路径文件中各哈希值查看对应的文件存储内容及类型(-p 文件存储内容,如文件内容str;-t 存储对象objects类型,如blob/tree/commit)。
git cat-file -p/-t 哈希值H(值的前4个字即可代表整个对应的哈希值)

  • 将之前add添加存放到索引区或暂存区的所有文件提交到local仓库中。注意:文字内容W主要是解释提交的文件的概述。
git commit -m "任意合理文字W添加"

  • 查看项目中.git/objects路径文件下已经提交到local(git 仓库)中文件的存储哈希值H‘。
find .git/objects

  • 上一步执行后都可以进一步根据objects路径文件中各哈希值查看对应的文件存储内容及类型(-p 文件存储内容,如文件内容str;-t 存储对象objects类型,如blob/tree/commit)。
git cat-file -p/-t 哈希值H’(值的前4个字即可代表整个对应的哈希值)

四、本地仓库的主要git命令

  • 查看HEAD指针指向的branch的commit哈希值
cat .git/HEAD
cat .git/refs/heads/branch
  • 创建分支
git branch X
  • 移动HEAD指针到别的分支X(同时新创建)
git checkout X
(git checkout -b X)
  • 合并分支
git meger X(HEDA动)
git rebase X(HEAD所在分支一起动)
  • HEAD与分支分离
git checkout commit哈希值
  • HEAD前移(HEAD一个走)
git checkout 分支^ 
git checkout 分支~数字
  • 分支前移(以HEAD具体位置为参考点)
git branch -f 分支 HEAD^
git branch -f 分支 HEAD~数字
  • 撤销命令,HEAD前移(HEAD分支一起走),导致原来提交的纪录会消失
git reset 分支(HEAD)^
git reset 分支(HEAD)~数字
  • 撤销的提交记录后面居然多了一个新提交,新提交引入撤销,状态回溯到撤销前的状态
git revert 分支(HEAD)
git revert 分支(HEAD)^
git revert 分支(HEAD)~数字
  • 在HEAD上延伸各个记录(C1 C2 C3 …),并移动HEAD,记录之间可以无顺序,用空格隔开
git cherry-pick 记录
  • 效果同上,只是记录根据HEAD的设置父节点数目等同
git rebase -i HEAD^
git rebase -i HEAD~数字
  • 创建标签(某次提交记录名没有的设置则默认为HEAD指向的位置)
git tag 标签名 (某次提交记录名)
  • 寻找离你最近的标签tag,若ref没有设置,默认为HEAD的位置,结果:tag+numCommits+hash(tag 表示的是离 ref 最近的标签,numCommits 是表示这个 ref 与 tag 相差有多少个提交记录,hash 表示的是你所给定的 ref 所表示的提交记录哈希值的前几位,当 ref 提交记录上有某个标签时,则只输出标签名称)
git describe ref
  • 寻找产生Bug的提交记录
git bisect
  • (不断补充中,敬请收藏)

五、远程仓库的主要git命令

  • 从技术上来讲,git clone 命令在真实的环境下的作用是在本地创建一个远程仓库的拷贝(比如从 github.com),克隆GitHub上的项目T,将远程项目库的项目T复制到本地local中
git clone T的路径
  • 从远程仓库获取数据,从远程仓库下载本地仓库中缺失的提交记录,更新远程分支指针
git fetch 通信协议
  • 从指定的远程仓库抓取更新记录再合并到本地分支
git pull
  • 将本地变更记录上传到指定的远程仓库,并在远程仓库上合并你的新提交记录,git push 不带任何参数时的行为与 Git 的一个名为 push.default 的配置有关。它的默认值取决于你正使用的 Git 的版本,在你的项目中进行推送之前,最好检查一下这个配置。
git push


相关文章
|
5月前
|
缓存 开发工具 git
git最实用指令
git最实用指令
23 1
|
6月前
|
Linux 开发工具 C语言
Linux的学习之路:7、yum与git
Linux的学习之路:7、yum与git
60 0
|
6月前
|
开发工具 git
常用的git指令
常用的git指令
69 0
|
6月前
|
安全 开发工具 git
三分钟学完Git版本控制常用指令
Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
55 0
三分钟学完Git版本控制常用指令
|
6月前
|
Java Shell 开发工具
Git快速入门+常用指令
Git快速入门+常用指令
57 0
|
1月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
112 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
1月前
|
Shell 开发工具 git
git学习三:git使用:删除仓库,删除仓库内文件
通过GitHub的设置页面删除仓库,以及如何使用Git命令行删除仓库中的文件或文件夹。
151 1
git学习三:git使用:删除仓库,删除仓库内文件
|
5月前
|
存储 网络安全 开发工具
【GIT】Git常用命令学习
【GIT】Git常用命令学习
67 1
|
1月前
|
Unix Shell 网络安全
git学习六:(bug总结)git@github.com: Permission denied (publickey).等
本文是关于解决在使用Git和GitHub时遇到的“git@github.com: Permission denied (publickey)”错误的指南。文章提供了详细的步骤,包括确认SSH Agent运行状态、检查密钥配置、确保密钥匹配、验证仓库URL、检查权限和代理设置,以及配置SSH文件。这些步骤帮助用户诊断并解决SSH认证问题。
93 0
|
1月前
|
编译器 网络安全 开发工具
git学习五:切换本地仓库出现的问题。修改git配置初始化。error:src refspec master does not match any。错误总结,送上几个案例
这篇文章是关于Git使用中遇到的一些问题及其解决方案的总结,包括切换本地仓库时的问题、修改Git初始化配置、以及解决"error: src refspec master does not match any"错误等。
55 0