git基础操作修炼手册

来了老弟

实习之前确实没有接触过git工具,一边实习一边学习,确实跳进过不少的坑,git工具教科书式的教程是在是太多了,我主要是根据自己的学习过程,跟大家分享一下,着重点在于实际操作,十天学会单片机,一天学会git工具,嘿嘿,之前从csdn学到不少前辈大佬们的经验,出于良心发现,也献出自己的一些贡献,ps:其实就是得瑟一下~本人也是第一次写csdn,不足之处还望多多指教。

前世今生

假如小明(哎,哪里都是小明)是一个没有接触过git工具的孩纸,让我来跟他聊会吧。
小明:什么是git啊?能吃吗?好吃吗?
我:嗯……我也是个吃货,但是可惜它并不能吃哎。linux的创始人linus(这个名字好有意思哈,就像作家在作品上写了l个笔名)花了两周的时间(大神就是大神,不服不行)用c写完了git工具,一个分布式版本控制系统。
小明:为什么要用git,我给文件起名为xxv1、xxv2……xxvn不就可以了吗?
我:是的呢,你好聪明呢,不过,你酱紫看文件夹里面的文件,不会觉得很乱吗?
小明:没有啊,文件名自动排序,简介明了
我:那你要是里面有好多文件要管理呢?
小明:嗯……这个嘛……那你说说git有什么好处吧
我:1. 文件夹里显示的都是你当前版本的文件,2. 可以方便的查看版本之间的改动,3. 可以方便的回退到之前的版本, 4. 回退到之前版本后,还可以回到“未来”版本, 5. 更方便团队合作开发……
小明:好啦好啦,这么神奇的工具,快教我怎么用吧
我:好嘞

git空间

按照教科书,git分为3个空间
git空间
版本库:存储提交的历史版本文件
暂存区:暂时存储修改的文件
工作区:当前可操作的文件
git流程:

  1. 工作区文件进行文件修改,即文件从未修改状态变为已修改状态,未修改状态其实就是版本库里面当前的版本文件。例如,修改文件为a.txt
  2. 突然感觉这个文件不用修改,怎么办?一直Ctrl/Command + Z? 感谢git给我们提供了checkout工具,只需使用git checkout a.txt就回到未修改状态啦, git checkout .所有撤销所有修改文件的修改
  3. 修改了a.txt文件后,我们想暂时存储起来并不提交到版本库,git提供了add工具,git add a.txt将a.txt文件add到暂存区,git add . 将所有修改文件add到暂存区,使用git reset HEAD a.txt将文件从暂存区回到工作区
  4. 使用== git commit a.txt -m “提交log” ==将暂存区文件提交到版本库

总结
在这里插入图片描述

git常用命令

在这里插入图片描述

git cherry-pick

将work分支的提交copy到topic分支
在这里插入图片描述
注:5Id是指work分支5这的点的版本号

git merge

在这里插入图片描述
git cherry-pickgit merge区别:
git cherry-pick新的节点保存的是5Id的提交信息
git merge新的节点是merge信息

git merge --ff/–no-ff

git merge --ff
在这里插入图片描述
git merge --no-ff
在这里插入图片描述

git rebase

在这里插入图片描述

git rebase -i

在这里插入图片描述
注:rebase -i 交互式rebase,可对rebase过程进行操作

远程分支

在开发中,我们需要本地分支和远程分支相关联,否则会报错“未追踪远程分支”,下面是远程分支相关的git基础命令

  1. git branch -vv 查看本地分支和远程分支关联关系
  2. git branch -a 查看远程分支
  3. git branch --set-upstream-to=origin/branch branch 将本地分支和远程分支建立关联(本地分支和远程分支可以是不同名分支)
  4. git branch --unset-upstream 将本地分支和远程分支解除关联

tag

一般发版时会使用tag工具进行打tag,用于记录发版信息,方便用于后期回溯版本。
git tag:展示所有tag信息(展示的标签按照字母顺序排序)
git tag -l(–list):可以添加通配符过滤tag信息。例:git tag -l “v1.*”
git tag tag_name:新建轻量级(lightwight)tag,tag_name为需要添加的tag名称。例:git tag v1.0
git tag -a tag_name -m tag_info:新建含备注(annotated)tag。例:git tag -a v1.0 -m “v1.0是一个很棒的版本”
git tag -a tag_name commitId -m tag_info:给某个commitId添加tag信息
git show tag_name:查看该tag信息
git push origin tag_name:将本地tag push到远端
git push origin --tags:将本地所有tag push到远端
git checkout tag_name:切换到某个tag,此时该分支处于游离状态,可以基于该分支创建新分支
git tag -d tag_name:删除本地某tag
git push origin :refs/tags/tag_name:删除远端tag_name分支

发布了5 篇原创文章 · 获赞 2 · 访问量 1315

猜你喜欢

转载自blog.csdn.net/u011532067/article/details/86756618