安装Git

  1. 打开Git中文官网:https://git-scm.com/book/zh/v2

  2. 选择“1.5 起步 - 安装Git”,选择相应的系统版本,下载安装包并根据说明进行安装

  3. 验证Git安装成功:打开终端,输入“git --version”

注:视频讲解为“在Mac上安装”

03.使用Git之前需要做的最小配置

  1. 配置user信息(必须,不配置的话,最后Git做变更提交时会出现提示信息,提示需要做相关配置)
    git config [–local | --global | --system] user.name ‘your_name’
    git config [–local | --global | --system] user.email ‘[email protected]

    作用域区别:
    local:只对用户当前工作仓库有效(缺省值)
    global:对当前用户所有仓库有效(常用)
    system:对系统所有登录的用户有效(不常用)

    注:优先级为local > global > system

  2. 显示config的配置
    git config --list [–local | --global | --system]

  3. 清除unset
    git config --unset [–local | --global | --system] user.name

04. 创建第一个仓库并配置local用户信息

两种场景

  1. 把已有的项目代码纳入Git管理
    cd 项目代码所在的文件夹
    git init
  2. 新建的项目直接用Git管理(重点)
	 cd 某个文件夹
	 git init your_project  #会在当前路径下创建和项目名称同名的文件夹,里面有个裸仓库.git
	 cd your_project
	 创建local user  #此时global的配置信息无效,因为local用户的优先级较高
	 vim readme  #新建readme文件
	 git add readme  #文件从“工作目录”存到“暂存区”;此步骤后文件将被Git系统持续追踪
     git status  #查看工作区的当前状态
     git commit -m 'Add readme'  #提交变更,-m参数为变更说明
     git log  #显示提交记录(包括变更说明信息),此时会显示提交修改的用户名和邮箱地址均为local user
  1. git add -u:此命令针对已经被Git跟踪的文件,可以一起提交到暂存区,无需给出具体文件名
    git add . 使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件
    git add -A:上面两种集合

06. 给文件重命名的简便方法

  1. 常规方法
  • mv readme readme.md  //git status 输出:删除了“readme”文件,并且存在未追踪(untracked)文件readme.md

  • git add readme.md + git rm readme  //git status 输出:暂存区需要提交的改变为“将readme重命名为readme.md” (智能识别出重命名的目的)

  • 注:git reset --hard  //不想保留刚刚的操作,清楚暂存区和工作区中的所有变更(危险操作,需谨慎),git status 输出:nothing to commit, working tree clean;此时git log的历史记录与操作前一致

  1. 便捷方式(一步到位)

07. 通过git log查看版本演变历史

(1)git log --oneline  //查看单行的简洁历史

(2)git log -n4  //查看最近的4条历史(可与–oneline组合使用:git log -n4 --oneline),4可变

(3)git branch -v  //查看本地有多少分支

(4)git checkout -b temp  //创建新分支temp,并切换到分支temp

(5)git commit -am ‘…’  //直接将工作区内容提交,跳过"git add"

(6)git log  //默认只显示当前分支的历史(如:head->temp)

(7)git log --all  //显示所有分支的历史

(8)git log --all --graph  //图示化显示分支历史

08. gitk: 通过图形界面工具来查看版本历史

(1)命令行输入gitk

(2)gitk 文件的路径  //查看单个文件的修改历史的具体内容

(3)某次变更有:作者(author)、提交者(commiter)两类属性,可不同

(4)通过“view”菜单定制显示内容

09. commit、tree和blob三个对象之间的关系

commit —> tree —> blob
git cat-file -p (hash) 命令显示版本库对象的内容、类型及大小信息

分离头指针

git checkout <commit id>
执行完命令会有下面的提示,提示你在分离头指针状态,在这个状态下修改提交的代码不会提交到正常的分支

分离头指针状态查看和返回
git status可以查看是否在头指针分离状态
如果想回到分支正常状态,直接执行git checkout master (master为要回到的分支)

分离头指针下修改
如果在分离头指针状态下对文件做了修改,并执行了git add .和git commit进行了提交

952770d为在分离头指针下提交的commit id,这个commit id回到master head是看不到的,回到master 重新执行git checkout 952770d可找回自己的代码,执行git log时也可以看到log

在分离头指针下当执行git checkout到其他分支时,会收到下面的警告,提示用户要新创建一个分支来保留做的修改

可以执行git branch <新分支名> 952770d创建一个新的分支,这个分支是基于头指针分离下修改提交的952770d创建的

删除不需要的分支

git branch -d 分支名
如果删除不掉 用 -D

修改最新commit的Message

git commit --amend

修改老旧 commit 的 Message

git rebase -i 要修改commit_id的上一级id(适用在本地上可以还不push情况下可以用)
极客时间-Git三剑客学习
修改为
极客时间-Git三剑客学习

保存退出

比较暂存区和 HEAD 的差异

git diff --cached

比较工作区和暂存区差异

git diff

让暂存区恢复成和HEAD的一样

git reset HEAD

让工作区恢复和暂存区一样

git checkout – 文件

取消暂存区部分文件的更改

git reset HEAD – 文件

消除最近几次的提交

git reset --hard commit_id(需要回退到的id) (公共集成分支不要执行这样的操作)

看看不同提交指定文件的差异

git diff temp master – index.html

git diff commit_id1 commit_id2 --文件名

临时开发紧急任务

git stash (入栈)

弹出
git stash pop (堆栈不保存)
git stash apply (堆栈保存)

指定不需要git管理的文件

编辑 .gitignore 文件

禁止向集成分支 git push -f

禁止向集成分支执行变更历史的操作

相关文章: