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常用命令

git基础操作修炼手册

git cherry-pick

将work分支的提交copy到topic分支
git基础操作修炼手册
注:5Id是指work分支5这的点的版本号

git merge

git基础操作修炼手册
git cherry-pickgit merge区别:
git cherry-pick新的节点保存的是5Id的提交信息
git merge新的节点是merge信息

git merge --ff/–no-ff

git merge --ff
git基础操作修炼手册
git merge --no-ff
git基础操作修炼手册

git rebase

git基础操作修炼手册

git rebase -i

git基础操作修炼手册
注:rebase -i 交互式rebase,可对rebase过程进行操作