Skip to content

Github

术语表

  • git: 一个开源的分布式版本控制系统,Git 是一个开源项目,用于以文本文件跟踪更改。它由 Linux 操作系统的作者编写。
  • GitHub: 一个托管和协作管理 Git 仓库的平台。
  • HEAD: 代表你当前的工作目录。使用 checkout 可移动 HEAD 指针到不同的分支、标记(tags)或提交。
  • detached HEAD 游离 HEAD:如果您操作的是游离的 HEAD,Git 将会警告您,这意味着 Git 不指向某个分支,并且您的任何提交都不会出现在提交历史记录中。例如,在检出并非任何特定分支最新提交的任意提交时,您操作的是“游离的 HEAD”。
  • stash 储藏:工作时需要切换其他分支修改 bug 但当前分支任务还未完成不能 commit(log 上会有大量不必要的记录),这样可以使用 git stash,将工作区内所有未提交的修改(包括暂存的和非暂存的)都保存起来形成新的本地储藏推入到 Git 的栈中,用于后续恢复。
  • commit 提交: 一个 Git 对象,是仓库快照的哈希值,包含一个指向暂存内容快照的指针,包含本次提交的作者等相关附属信息,包含零个或多个指向该提交对象的父对象指针:首次提交是没有直接祖先的,普通提交有一个祖先,由两个或多个分支合并产生的提交则有多个祖先。提交或“修订”是对一个文件(或一组文件)的个别更改。在进行提交以保存工作时,Git 会创建唯一的 ID(也称为 "SHA" 或“哈希”),用于记录提交的特定更改以及提交者和提交时间。提交通常包含一条提交消息,其中简要说明所做的更改。
  • SHA 提交 ID:用于识别提交的 40 字符校验和哈希。
  • branch 分支: 一个轻型可移动的 commit 指针,一个包含所指对象校验和(40 个字符长度 SHA-1 字串,外加一个换行符)的文件。分支是仓库的平行版本。它包含在仓库中,但不影响主要或 master 分支,可让您自由工作而不中断“即时”版本。在执行所需的更改后,可以将分支合并回 master 分支以发布更改。
  • checkout 检出:在命令行上使用 git checkout 创建新分支,将当前的工作分支更改为不同的分支,甚至使用 git checkout [branchname] [path to file] 从不同的分支切换到不同版本的文件。“检出”操作会使用对象数据库中的树对象或 blob 更新工作树的全部或部分,以及更新索引和 HEAD(如果整个工作树指向新分支)。
  • rebase 变基/衍合:要将一系列变更从一个分支重新应用到不同的基础分支,并将分支的 HEAD 重置为结果。
  • clone 克隆: 克隆远程仓库,包含所有提交和分支。克隆是指存在于计算机上而非网站服务器其他位置的仓库副本,或者是复制的操作。在克隆时,可在首选编辑器中编辑文件,使用 Git 跟踪更改而无需保持在线。您克隆的仓库仍与远程版本连接,以便当您在线时将本地更改推送到远程,以保持同步。
  • remote 远程: 托管于服务器上的仓库或分支版本。远程版本可以连接到本地克隆,以使更改保持同步,所有用户通过它来交换修改。
  • origin 源:默认上游仓库。大多数项目至少有一个它们跟踪的上游项目。
  • fork 复刻: 其他用户仓库在您的帐户上的个人副本。分叉允许您自由更改项目而不影响原始上游仓库。您也可以在上游仓库中打开拉取请求,并使分叉同步最新的更改,因为两个仓库仍然互相连接。
  • issue 议题:议题是提议的与仓库相关的改进、任务或问题。(对于公共仓库)任何人都可创建议题,然后由仓库协作者调解。每个议题都包含自己的讨论线程。您也可以使用标签将议题归类并分配到某人。
  • pull request 拉取请求: 一处用于比较和讨论分支上引入的差异,且具有评审、评论、集成测试等功能的地方。
  • pull 拉取:拉取是指提取与合并更改。例如,如果有人编辑了您操作的远程文件,您要将这些更改拉取到本地副本,以使其保持最新。
  • fetch 获取:在使用 git fetch 时,您将从远程仓库添加更改到本地工作分支,而不提交它们。与 git pull 不同,提取可让您在更改提交到本地分支之前先进行审查。
  • diff 差异:差异是指两个提交之间的更改或保存的更改之间的区别,它将从视觉上描述文件自上次提交后添加或删除的内容。
  • merge 合并:合并是从一个分支(在相同的仓库中或来自一个分叉)提取更改,然后将其应用到另一个分支。这通常是作为“拉取请求”(可视为请求合并)或通过命令行完成。
  • push 推送:推送是指将提交的更改发送到远程仓库。例如,如果您在本地更改内容,便可推送这些更改,让其他人访问。
  • ssh-key SSH 密钥:SSH 密钥是一种使用加密消息向在线服务器标识自己的方法。就好像您的计算机使用唯一密码登录其他服务一样。GitHub 使用 SSH 密钥将信息安全地传输到您的计算机。
  • license 许可:一种可随附于项目的文档,告知们能够对您的源代码执行哪些操作,不能执行哪些操作。

凭证存储

通过配置 Git 缓存凭据,您可以避免提示输入密码。 在配置凭据缓存后,当您使用 HTTPS 拉取或推送仓库时,Git 会自动使用缓存的个人访问令牌。

GitHub CLI

PowerShell
# for All Platforms: <https://cli.github.com/>

# Mac/Linux (using Homebrew<https://brew.sh/>)
brew install gh

# Windows (using Scoop<https://scoop.sh/>)
scoop install gh
# Windows (using WinGet<https://github.com/microsoft/winget-cli>)
winget install --id GitHub.cli

# auth
gh auth login

Git Credential Manager

PowerShell
# for All Platforms: <https://github.com/GitCredentialManager/git-credential-manager>

# Mac/Linux (using Homebrew<https://brew.sh/>)
brew install git
brew tap microsoft/git
brew install --cask git-credential-manager-core

# Windows (using Scoop<https://scoop.sh/>)
## Git for Windows includes GCM(Git Credential Manager)
scoop install git
# Windows (using WinGet<https://github.com/microsoft/winget-cli>)
winget install --id Git.Git
Back to top