博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【知识小结】Git 个人学习笔记及心得
阅读量:6186 次
发布时间:2019-06-21

本文共 3057 字,大约阅读时间需要 10 分钟。

https://mp.weixin.qq.com/s/D96dXYfu3XAA4ac456qo0g

git架构

  • 工作区:就是你在电脑里能看到的目录。

  • 版本库:工作区有一个隐藏目录.git,,而是Git的版本库。

  • 暂存区:英文叫stage, 或index。一般存.git/index中,所以我们把暂存区有时也叫作索引(index)。

  • HEAD:指向 master 分支的一个"游标"

  • objects:位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。

  • git add:暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。

  • git commit:当执行提交操作时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。

  • git reset HEAD:取消已缓存的内容,但是工作区不受影响。

  • git rm --cached <file>:会直接从暂存区删除文件,工作区则不做出改变。

  • git checkout ." 或者 "git checkout -- <file>":会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。

  • git checkout HEAD ." 或者 "git checkout HEAD <file>" :会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

git config

·        /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。

·        ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。

·        当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。

$ git config --global user.name "runoob"   $ git config --global user.email test@runoob.com   $ git config --list   $ git config user.name  

git clone

git clone http://github.com/CosmosHua/locate new   git clone http://github.com/CosmosHua/locate.git new   git clone git://github.com/CosmosHua/locate new git clone git://github.com/CosmosHua/locate.git new

git status -s

#-s 参数,以获得简短的结果输出   "AM" 状态的意思是,这个文件在我们将它添加到缓存(git add)之后又有改动   “??”未add   “A”已经add

git diff

查看比 git status 的结果的详细信息。

git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。

  • 尚未缓存的改动:git diff

  • 查看已缓存的改动: git diff --cached

  • 查看已缓存的与未缓存的所有改动:git diff HEAD

  • 显示摘要而非整个 diff:git diff --stat

git reset HEAD 

取消已缓存的内容。

  1. $ git reset HEAD -- hello.php 取消其中一个缓存的文件  

git rm

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm -f 

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中。

git rm --cached 

git如何撤销上一次commit操作

git reset --soft|--mixed|--hard 
   git push develop develop --force  (本地分支和远程分支都是 develop)  
这里的
就是每次commit的
SHA-1,可以在log里查看到 --mixed 会保留源码,只是将git commit和index 信息回退到了某个版本. --soft 保留源码,只回退到commit信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可. --hard 源码也会回退到某个版本,commit和index 都会回退到某个版本.(注意,这种方式是改变本地代码仓库源码)

git branch

创建分支命令:   git branch (branchname)   切换分支命令:   git checkout (branchname)   当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容。   git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下   git merge secondBranch #merge secondBrach to master,可以不用切回master branch   你可以多次合并到统一分支, 也可以选择在合并之后直接删除被并入的分支。   删除分支命令:   git branch -d (branchname)  

 

Git log

查看历史提交记录   Git log   查看简洁版   Git log –-oneline  

git tag

如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签。

-a 选项意为"创建一个带注解的标签"。不用 -a 选项不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。

$ git tag -a v1.0 –m “first tag”   如果我们忘了给某个提交打标签,又将它发布了,我们可以给它追加标签   $ git tag -a v0.9 85fc7e7   $ git log --oneline 可以看到

git remote 

添加远程库

要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,命令格式如下:

git remote add [shortname] [url]   git remote add remoteServer https://github.com/Courage-Freadom/hello-world/   git push -u remoteServer master  

 

查看远程仓库   $ git remote -v   从远程仓库下载新分支,该命令执行完后需要执行git merge   git fetch   从远端仓库提取数据并尝试合并到当前分支:   git merge  

 

转载地址:http://mboda.baihongyu.com/

你可能感兴趣的文章
PostgreSQL之序列(Sequence)
查看>>
nodejs中http连接池复用的问题
查看>>
百度「Web 前端研发部」面试过程和常见问题
查看>>
11g包dbms_parallel_execute在海量数据处理过程中的应用
查看>>
Win7搭建NodeJs开发环境以及HelloWorld展示—图解
查看>>
通过Xshell连接CentOS虚拟机
查看>>
ovirt 平台按照VM,一直卡在seabios
查看>>
Hybris Enterprise Commerce Platform 服务层的设计与实现
查看>>
回收出千亿市场!回收宝获阿里巴巴C1轮战略投资
查看>>
Imperva:2018 Web 应用漏洞数量比 2017 增加了 21%
查看>>
为帝都金三银四准备的Android面试热点题
查看>>
XML教程、语法手册、数据读取方式大全
查看>>
日本借人工智能技术识别早期胃癌
查看>>
maltrieve - 为安全研究人员直接从源头检索恶意软件的工具
查看>>
Ubuntu系统安装搜狗输入法详细教程
查看>>
MaxCompute 跨项目空间的访问控制和权限管理
查看>>
Android 模拟器 IP问题
查看>>
计算机网络之应用层
查看>>
字符串操作助手类
查看>>
commons-logging,log4j,logback,slf4j之间的关系详解。
查看>>