Git 的接口

为了避免重复造轮, 我们不会一五一十的解释下面的这些命令行指令. 我们推荐你阅读 Pro Git 文档来学习这些 Git 的基础操作. 另外文档工具例如 tldr, 或者 git help 会很有用.

此外, 我们推荐你去了解 IDE 里集成的 Git 使用, 而不是照着命令行敲(通常来说这是低效的). 当然, 作为学习工作原理, 我们强烈推荐你去了解CLI.

基础操作

获取一个 Git 仓库:

  • git init: 将尚未进行版本控制的本地目录转换为 Git 仓库

  • git clone: 从其它服务器克隆一个已存在的 Git 仓库

一些基础操作:

  • git status: 查看当前状态

  • git add: 将文件添加到暂存区

    • 从工作区(worktree)添加到暂存区(index/staged)

  • git commit -m "<message>": 创建一次提交

    • 暂存区添加到版本库. 这时候会更新 HEAD.

    • 我好犹豫怎么写提交信息啊! 看看这个文章. 写好提交信息很重要.

  • git log: 显示历史信息

  • git log --all --graph --decorate: 可视化

  • git diff <filename>: 显示文件与暂存区的差异

  • git diff <revision> <filename>: 显示某个文件两个版本之间的差异

  • git checkout <revision>: 更新HEAD和目前的分支

分支操作

分支操作是 Git 的灵魂之一. 我们在原理篇介绍了分支其实就是一个指向 commit 的指针. 按照这个思路你会更好理解这个概念.

我们强烈推荐你学习 Learn Git Branching 这样一个交互式网站去学习分支操作!

  • git branch: 显示分支

  • git branch <name>: 创建分支

  • git checkout -b <name>: 创建分支并切换到该分支

  • git merge <revision>: 合并到当前分支

  • git mergetool: 使用工具来处理合并冲突

  • git rebase: 将一系列补丁变基(rebase)为新的基线

远端操作

怎么让自己本地的 Git 仓库能够上传到服务器? 你需要将本地和远端进行关联.

  • git remote: 列出远端

    • -v 选项能够将已知远端的名称和 url 一同显示.

  • git remote add <name> <url>: 添加一个远端

  • git push <remote> <local branch>:<remote branch>: 将对象传送至远端并更新远端引用

    • 通常来说 git push -u origin --all 这样就够用

将本地 Git 仓库上传到 Github 上创建的空仓库, 以上几步即可完成.

  • git branch --set-upstream-to=<remote>/<remote branch>: 创建本地和远端分支的关联关系

  • git fetch: 从远端获取对象/索引

  • git pull: 相当于 git fetch; git merge

  • git clone: 从远端下载仓库

撤销

  • git commit --amend: 编辑提交的内容或信息

  • git reset HEAD <file>: 恢复暂存的文件

  • git checkout -- <file>: 丢弃修改

  • git restore: git 2.32 版本后取代 git reset 进行许多撤销操作

进阶操作

  • git config: Git 是一个高度可定制的工具

    • git pre-commit hook: Git 能在特定的重要动作发生时触发自定义脚本(shell)

  • git clone --depth=1: 浅克隆 (shallow clone), 不包括完整的版本历史信息

  • git add -p: 交互式暂存

  • git rebase -i: 交互式变基

  • git blame: 查看最后修改某行的人

  • git stash: 暂时移除工作目录下的修改内容

  • git bisect: 通过二分查找搜索历史记录

  • .gitignore: 指定故意不追踪的文件

  • 提交签名: 给你的 Git 提交签名, 这样你的提交就会有一个 Verified 字样. 曾经有人用 linus 的名义发起 commit 整蛊.

合格的 Git 仓库

原则: 要让傻瓜都会按照你的指示正常跑起你的代码.

包含以下内容:

  • 合适的项目名称

  • 项目简介

  • README.md

  • .gitignore

  • 项目源码

  • 项目依赖库的安装方式

  • 项目的使用方法

演示: IDE 里的使用

这一部分其实最为重要: 就算你不懂原理, 但你也可以依葫芦画瓢地去使用 Git.

我们给出相关 IDE 的文档: 如果有你没见到的, 记得 STFW.

最后更新于

这有帮助吗?