Git读书笔记

写在前面:
这是一篇菜鸟的学习笔记,记录git的相关知识点。浮光掠影,浅尝辄止。

之前为了在简历上能写些版本控制工具的使用技能,百度了许久硬生生地把一个工程上传到GitHub,仅仅把GitHub当作网盘来使用 (′`〃)。然而只知其然不知其所以然,那些add、commit是怎么回事,完全不清楚。果然几个月过后还是忘记如何上传项目。始终觉得学习就应该系统学,至少要有个整体的把握。这篇文章是我在看Git详解以及结合百度所记录的学习笔记。(目前只是看了前几章)

一、Git基本概念:

  • Git是一套内容寻址文件系统
  • .git的目录保存元数据和对象数据库的地方。克隆镜像仓库的时候,实际拷贝的就是该目录
  • 从项目中取出某个版本的所以文件和目录,用以开始后续工作的叫做工程目录
  • Git并不保存这些文件前后的差异数,而是保存每次更新时的文件快照

二、Git工作流程:

  • 基本工作流程
    1.工作目录中修改某些文件
    2.对修改后的文件进行快照,然后保存到暂存区域
    3.提交更新,将文件快照永久转储到Git目录
  • git在本地实际上维护了“三棵树”:
    1.工作目录:持有实际文件
    2.缓存区(Index):临时保存你的改动
    3.Head:最后一次提交后的结果
  • 三棵树的流程:
三棵树流程.png

三、文件的生命周期

File Status Lifecycle.png

四、Git几大操作流程

来自一篇博客.png

五、简单命令

  • 初始化项目
git init
  • 克隆项目
git clone [url]
  • 检查当前文件状态
git status
  • 跟踪新文件,或把已跟踪文件放到暂存区
git add [filename]
  • 要查看尚未暂存的文件更新了哪些部分
git diff
  • 查看已暂存文件和上次提交快照之间的差异
git diff -- cached

-提交更新

git commit
或者
git commit -m '提交的说明注释'
  • 跳过 git add 直接提交
git commit -a
  • 移除文件
git rm [filename]
  • 从Git仓库中删除,但仍保留在当前工作目录
git rm -- cached [filename]
  • 移动文件
git mv [file_name_from] [file_name_to]
  • 查看提交历史
git log
我们常用-p 选项展开显示每次提交的内容差异,用-2 则仅显示最近的两次更新:
git log -p -2
  • 查看所有commit
git reflog
  • 修改最后一次提交
git commit --amend
具体过程
git commit -m 'commit'                      第二次提交
git add [forgotten_file]                       修正第一个
git commit --amend
  • 取消对文件修改
git checkout -- [filename]
  • 查看远程仓库
git remote
git remote -v                     详细信息
  • 添加远程仓库
git remote add [you take a nickname] [url]
  • 上传远程仓库
git push [remote_name] [branck_name]
如果在你推送数据前,已经有其他人推送若干更新,那你的推送将被驳回。
你必须先把它们的更新抓取到本地,合并到自己的项目中,才可以再次推送。
  • 抓取数据
git fetch [remote_name]
  • 创建标签
git tag -a [v1.4] -m 'my version 1.4'
  • 列显已有标签
git tag
或者
git tag -l 'v1.4.2.*'
  • 展示标签版本信息
git show [v1.4]
  • 创建分支
git branch [name]
仅仅是建立一个新分支,不会自动切换到该分支中去
  • 切换分支
git checkout [name]
  • 删除分支
git branch -d [name]
  • SSH生成公钥
ssh-keygen
  • 整合远程再上传
git fetch origin
git merge orign/master
git push origin master
当修改代码后发现已经有人改动其他代码,需要先fetch再merge后才push
  • 操作的url可以是本地路径,如
git clone /opt/git/project.git
或
git clone file://opt/git/project.git
  • 回滚
git reset --hard <commit ID号>
参数的“hard”使工程目录都回滚,还有其他参数,现在还不会使用

六、更多命令行可以看看这篇文章

来自网络.jpg

抛砖引玉

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,805评论 1 17
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,740评论 9 163
  • 难怪说法国人浪漫,就连晚上睡觉也要卿卿我我地搂抱在一起。要不这么窄小的一张双人床怎么容得下吃牛肉的两个? 幸亏我和...
    繁花私语阅读 321评论 0 7
  • 史蒂芬.柯维说: “与人合作最重要的是,重视不同个体的不同心理、情绪与智能,以及个人眼中所见到的不同世界。统合综效...
    铱漩娜阅读 1,988评论 1 3
  • 夏丏尊与叶圣陶合著的《文心》,是一本专讲读与写的书,设想的对象是中学生和中学教师。两位大家都做过多年的教师,提出的...
    风一wf阅读 616评论 0 0