关闭
搜索
搜索
本版
帖子
用户
热搜:
程序员
简洁模式
高级模式
用户组: 游客
消息
提醒
新听众
我关注的
帖子
道具
勋章
任务
设置
退出
请
登录
后使用快捷导航
没有帐号?
立即注册
设为首页
收藏本站
开启辅助访问
切换到窄版
登录
or
立即注册
快捷导航
搜索
首页
论坛
BBS
MCU单片机技术
程序员交流
Git入门:术语基础|Linux中国
[复制链接]
作者:
295255980
版块:
›
嵌入式操作系统
›
linux
发布时间:
2021-1-10 00:03:32
1556
0
返回列表
295255980
当前离线
中级会员
中级会员, 积分 270, 距离下一级还需 230 积分
中级会员
中级会员, 积分 270, 距离下一级还需 230 积分
积分
270
发消息
楼主
电梯直达
295255980
发表于 2021-1-10 00:03:32
|
只看该作者
|
倒序浏览
|
阅读模式
导读:
想学习 Git?看看这个最重要的术语和命令的快速总结。
本文字数:4793,阅读时长大约:7分钟
作者:Matthew Broberg
译者:Xingyu.Wang
如今,对于任何希望跟踪他们的变化的人来说,版本控制是一个重要的工具。它对程序员、系统管理员和网站可靠性工程师(site reliability engineers)(SRE)都特别有用。确保可以从错误中恢复到已知的良好状态是一个巨大的胜利,比以前给复制的文件添加 后缀的策略更友好。
但学习 Git 这件事往往被告诉大家“投身开源”的好心同行们过度简化了。在你还不明白之前,就有人要你给一个从上游(upstream)变基(rebase)的拉取请求(pull request)(PR)或合并请求(merge request)(MR),然后他们才能从你的远程版本库(remote)合并 —— 而且一定会删除合并提交(merge commits)。无论你想给开源项目做出什么好的贡献,当你看到这些你不认识的单词时,都会觉得难以融入。
Git 速查表封面图
下载我们的 Git 速查表。
如果你有一两个月的时间和足够的好奇心,Git SCM是你需要学习所有术语的权威来源。但如果你正在寻找来自实践的总结,请继续阅读。
提交就是提醒
对我来说,Git 最难理解的部分是 Git 最简单的概念:一个提交(commit)就是一个内容的集合,包括一个关于描述的信息,以及之前的提交。没有固有的代码发布策略,甚至没有内置的明确建议。这个内容甚至不一定是代码 —— 可以是任何你想添加到版本库的东西。提交消息(commit message)会对这些内容进行注释。
我喜欢把提交信息看作是给未来的自己的礼物:它可能会提到你编辑的文件,但更重要的是它提醒你修改这些文件的意图。添加更多关于你为什么编辑这些内容的信息,可以帮助任何使用你的版本库的人,即使那个人是你。
origin/master 在哪里?
要知道自己在 Git 项目中的位置,首先把它想成一棵树。所有 Git 项目都有一个根目录,类似于文件系统的根目录。所有的提交都是这个根目录下的分支。这样一来,分支只是一个提交的指针。按照惯例, 是根目录下默认的分支名称。(LCTT 译注:世界变得快,原文发表于 2019 年,而现在有些地方开始用 替代这个名字。)
由于 Git 是一个分布式的版本控制系统,同一个代码库分布在多个地方,所以人们经常用版本库(repository)这个词来表示同一个项目的所有副本。(LCTT 译注:“repository” 英文原意是仓库、存储库,在计算机环境中,常用于版本控制、软件分发等方面,有时候会统一译作“仓库”、“存储库”。但我们认为,应该根据不同语境采用更有指向性的译法。在 Git 等版本控制语境中,采用“版本库”;在软件分发方面,采用“软件库”;其它泛指或不确定的语境中,可采用“仓库”、“存储库”译法。)有本地版本库(local repository),这是你编辑代码的地方(稍后会有更多的介绍),还有远程版本库(remote repository),这是你完成后想把代码发送到的地方。远程版本库可以在任何地方,甚至在你的本地版本库所在的同一台计算机上,但它们通常托管在 GitLab 或 GitHub 等版本库服务上。
我在哪里?
虽然不是官方的卖点,但迷路也是 Git 仓库的“乐趣”之一。你可以通过这套可靠的命令来找到自己的方向:
—— 找到你所在的分支。
—— 查看你正在进行的提交。
—— 查看自上次提交以来你所做的编辑。
—— 查看你正在跟踪的远程仓库。
用这些命令来定位自己的方向,当你被卡住的时候,会让你有一种方向感。
我是否已将我的提交暂存或缓存起来?
你电脑上的代码俗称为你的工作空间(workspace)。但不是很明显的是,当你在 Git 仓库中时,你还有两个(是的,两个!)其他位置:索引(index)和暂存(stash)。当你写了一些内容,然后添加时,你是把它添加到索引中,也就是准备提交的缓存内容。有的时候,你的索引中的文件还没有准备好提交,但你想查看另一个分支。这时,暂存就派上用场了。你可以使用 将索引了但尚未提交的文件存储到暂存区中。当你准备好取回文件时,运行 将更改带回索引中。
下面是一些你需要使用暂存区和缓存区的命令:
—— 显示最近的本地提交和远程的 版本库的 分支之间的差异。
—— 显示最近的本地提交与添加到本地索引的内容之间的任何差异。
—— 将索引的(已添加但未提交的)文件放在暂存区堆栈中。
—— 显示暂存区堆栈中的变化。
—— 将最近的变化从暂存库中删除。
无头骑士
Git 里面有各种比喻。当我想到 是哪里的时候,我就会想到火车线路。如果你最终处于脱离的 HEAD(detached HEAD)模式,就意味着你已经脱离了这个隐喻的轨道。
是指向当前签出分支中最近一次提交的指针。默认的“签出checkout”是指当你创建一个 Git 仓库并进入到 分支的时候。每次创建或修改到另一个分支时,你都会切换到该分支行。如果你在当前分支的某处进行 , 就会移动到该提交。如果没有提交历史记录将你的当前提交连接到已签出的提交,那么你将处于脱离的 状态。如果你找不到 的位置,你可以随时用 来删除修改,回到已知状态。警告:这将删除你上次推送到 后的任何改动。
你是上游还是下游?
你的项目的本地副本被认为是你的本地版本库,它可能有也可能没有远程版本库 —— 远程版本库的副本是用于协作或保存的。也可能还有一个上游(upstream)版本库,在那里,项目的第三个副本由不同的贡献者托管和维护。
例如,假设我想为 Kubernetes 做贡献。我会首先将 项目复刻(fork)到我的账户下 。然后我会将我的项目克隆到我的本地工作区。在这种情况下,我的本地克隆是我的本地仓库, 是我的远程仓库, 是上游。
合并的隐喻
当你深入 Git 分支时,根系统的视觉效果就会和火车轨道的形象合二为一。分支通常被用作开发一个新功能的方式,最终你想把它合并(merge)到主分支中。当这样做时,Git 会按顺序保留共同的提交历史,然后将你的分支的新提交追加到历史中。这个过程有一大堆的细节:是否变基(rebase),是否添加一个合并提交(merge commit),Brent Laster在《如何在 Git 中重置、恢复和返回之前的状态》中会有更详细的探讨。
我想现在就去 Git
要掌握 Git 命令的世界,有大量的术语和需要探索的地方。我希望这篇关于日常使用术语的第一人称探索能帮助你适应这一切。如果你觉得自己被卡住了或者遇到了挫折,欢迎在 Twitter@mbbroberg上联系我。
回顾
提交(Commit)—— 将当前索引的内容保存在一个新的提交中,并附上用户描述更改的日志信息。
分支(Branch)—— 指向一个提交的指针。
—— 第一个分支的默认名称。
—— 指向当前分支上最近一次提交的指针。
合并(Merge)—— 合并两个或多个提交的历史。
工作空间(Workspace)—— Git 仓库本地副本的通俗名称。
工作树(Working tree)—— 工作区中的当前分支;任何时候你都可以在 的输出中看到这个。
缓存(Cache)—— 用于临时存储未提交的变更的空间。
索引(Index)—— 变更提交前存储其变化的缓存。
跟踪和未跟踪的文件 —— 没有被索引缓存的文件或尚未加入其中的文件。
暂存(Stash)—— 另一个缓存,作为一个堆栈,在这里可以存储更改而不需要提交它们。
—— 远程版本库的默认名称。
本地仓库(Local repository)—— 也就是你在工作站上保存 Git 仓库副本的地方。
远程存储库(Remote repository)—— Git 存储库的第二副本,你可以在这里推送变更以便协作或备份。
上游存储库(Upstream repository)—— 你跟踪的远程存储库的通俗说法。
拉取请求(Pull request)—— 这是 GitHub 的专用术语,用于让其他人知道你推送到仓库分支的变化。
合并请求(Merge request)—— 这是 GitLab 的专用术语,用于让其他人知道你推送到仓库分支的变化。
—— 远程版本库及其主要分支的默认名称。
后记:双关语是 Git 最好的部分之一,愿你喜欢。
via:http://opensource.com/article/19/2/git-terminology
作者:Matthew Broberg选题:lujun9972译者:wxy校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
欢迎遵照 CC-BY-NC-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”。
我们将为您添加白名单,授权“转载文章时可以修改”,
可以修改版式,但不能修改文字和图片内容。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
立即注册
收藏
0
相关帖子
•
Python被爆大Bug,攻击者可远程代码执行漏洞!
•
KaliLinux新版发布,道德黑客和渗透测试发行版
•
LinusTorvalds修复了“双重不良”的Linux内核错误
•
Linux下开源BI工具Superset的1.0以上版本安装
•
嵌入式必备之Git的使用
•
新手程序员必备5项技能,你都掌握了吗?
•
Linux5.12最终版迎来额外一周的测试时间
•
M1芯片MacSSD磨损问题将在macOS11.4中得到修复
•
RockyLinux8.4RC1发布
•
Debian11.0“Bullseye”第2个候选版发布:基于Linux5.10内核
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
表情
@朋友
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表