Git learning

菜鸟教程学习记录

Git 配置

git config 命令专门用来配置或读取相应的工作环境变量。环境变量分为三种,分别存在三个地方:

  • 所有用户:/etc/gitconfig
  • 个人用户:~/.gitconfig
  • 项目环境:当前项目工作目录中的 .git/config 文件

git config --list可以查看已有的配置信息,vim ~/.gitconfig也行。

Git 工作流程

Git 工作区、暂存区和版本库

三个概念:工作区、暂存区/缓存区(英文名叫index或stage)、版本库。
master那一般也被叫做仓库。
Git learning
慎重使用checkout 命令,会用版本库中的index或者master覆盖掉工作区的内容。

Git基本操作

  • git init
  • git clone [url]
  • git add
    • git add README.md hello.php 后面可以跟多个文件
  • git commit
    • git commit -m "第一次提交" -m 提交时候添加评论
    • git commit -a" -a 跳过git add 到缓存区,直接提交到仓库。可以 -am一起用
  • git status
    • `git status -s -s 参数,以获得简短的结果输出,如果没加该参数会详细输出内容
    • “AM” 状态的意思是,这个文件在我们将它添加到缓存之后又有改动。
    • " M" 状态的意思是,本地发生改动
    • "M " 状态的意思是,缓存区发生改动
  • git diff
    • git diff 尚未缓存的改动
    • git diff --cached 查看已缓存的改动
    • git diff HEAD 查看已缓存的与未缓存的所有改动
    • git diff --stat 显示摘要而非整个 diff
  • git reset HEAD 命令用于取消之前 git add 添加到缓存的内容
  • git mv
    • git mv 命令用于移动或重命名一个文件、目录、软连接。只是执行mv,只会更改本地的名字,缓存区中的名字不会改,
    • 执行git mv后,git status -s查看状态会出现"R ",表示文件被重命名
  • git rm
    • git rm <file> 只删除本地
    • git rm -f <file> 删除本地和缓存区
    • git rm --cached <file> 只删除缓存区

Git 分支管理

  • git branch
    • git branch 列出本地的分支
    • git branch newtest 手动创建一个分支
  • git checkout
    • git checkout newtest 切换分支
    • git checkout -b newtest 创建新分支并立即切换到该分支下

Git 查看提交历史

  • git log
    • git log --oneline --oneline 选项来查看历史记录的简洁的版本
    • –reverse 逆向显示所有日志
    • git log --author=Linus --oneline -5 找指定用户的提交日志
    • 还可以指定日期等,更详细参考:

Git 标签

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

  • git tag
    • git tag查看所有标签
    • git tag -a v1.0 -a 选项意为"创建一个带注解的标签"(执行完,Git 会打开你的编辑器,让你写一句标签注解,就像你给提交写注解一样。)。 git log --decorate可以看到标签
    • git tag -a v0.9 85fc7e7忘记了打标签也可以补上

Git 远程仓库(Github)

参考 菜鸟教程