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


相关文章
|
1月前
|
开发工具 git
常用的git指令
常用的git指令
43 0
|
3月前
|
Java Shell 开发工具
Git快速入门+常用指令
Git快速入门+常用指令
33 0
|
3月前
|
安全 开发工具 git
三分钟学完Git版本控制常用指令
Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
30 0
三分钟学完Git版本控制常用指令
|
4月前
|
Shell 开发工具 git
Git获取本地仓库及基础操作指令
Git获取本地仓库及基础操作指令
36 0
|
6月前
|
JSON 前端开发 JavaScript
前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(一)
前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(一)
520 0
|
4天前
|
开发工具 git
完美解决git 执行git push origin master指令 报错command not found
完美解决git 执行git push origin master指令 报错command not found
11 0
|
2月前
|
安全 Shell 网络安全
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
130 0
|
3月前
|
Linux Shell 网络安全
Git全指令教程
Git全指令教程
94 1
|
3月前
|
缓存 开发工具 git
推荐收藏 | 【Git实战专题】「必坑宝典」带你深入剖析Git操作指令下的奥秘原理和运作机制
Git是一个分布式版本控制系统,它可以跟踪文件的修改、记录历史版本,并支持多人协作开发。
40 2
推荐收藏 | 【Git实战专题】「必坑宝典」带你深入剖析Git操作指令下的奥秘原理和运作机制
|
3月前
|
存储 数据可视化 前端开发
20个常用的 Git 指令用法
20个常用的 Git 指令用法

热门文章

最新文章

相关实验场景

更多