Git入门术语基础|Linux中国想必都是比较想知道,关于git 详细log这类的话题一直是大家很想去了解的,让小编为你揭秘案吧!
想学习Git?获取最重要术语和命令的简要摘要。
•
对于当今想要跟踪更改的任何人来说,版本控制是一个重要的工具。它对于程序员、系统管理员和站点可靠性工程师特别有用。确保错误可以恢复到已知的良好状态是一个巨大的胜利,并且比之前向复制文件附加旧后缀的策略要友好得多。
但是,善意的同行常常将学习Git过于简单化,他们告诉每个人“跳进开源领域”。在您意识到之前,有人可以请求拉取请求或合并请求以从上游进行变基,然后从您的远程存储库远程合并——,他们肯定会删除合并提交。无论你多么想为开源项目做出贡献,如果你看到不认识的单词,都将很难集成。
Git备忘单封面图片
下载我们的Git备忘单。
如果您好奇一两个月,GitSCM是您需要学习的所有术语的权威来源。但如果您正在寻找实践总结,请继续阅读。
提交是一个通知
在我看来,Git最难理解的部分是它最简单的概念。提交是内容的集合,包括信息描述和以前的提交。没有独特的代码发布策略或明确的内置建议。此内容甚至不需要代码——。它可以是您想要添加到存储库中的任何内容。提交消息解释了这些事情。
我喜欢将提交消息视为给未来的自己的礼物。提交消息可能会提到您编辑的文件,但更重要的是,它提醒您修改这些文件的意图。添加有关编辑内容原因的其他信息可能会有所帮助,即使您是唯一使用该存储库的人。
起源/主人在哪里?
要了解您在Git项目中的位置,首先将其想象为一棵树。每个Git项目都有一个根目录,类似于文件系统的根目录。所有提交都是该根目录下的分支。这样,分支只是指向提交的指针。按照约定,master是根目录的默认分支名称。
由于Git是一个分布式版本控制系统,并且相同的代码库分布在多个位置,因此人们经常使用存储库一词来指代同一项目的所有副本。我有一个本地存储库,可以在其中编辑代码,还有一个远程存储库,可以在完成后将代码发送到该存储库。远程存储库可以位于任何地方,甚至可以与本地存储库位于同一台计算机上,但通常托管在GitLab或GitHub等存储库服务上。
我在哪里?
虽然这不是的卖点,但迷失是Git存储库“乐趣”的一部分。您可以使用以下一组可信命令找到自己的方法
gitBranch——找到您当前所在的分支。
输入gitlog——查看您正在处理的提交。
gitstatus——检查自上次提交以来所做的更改。
gitremote——查看正在跟踪的远程存储库。
这些命令将帮助您确定自己的方向,并在遇到困难时给您方向感。
您准备好或缓存了提交的内容吗?
计算机上的代码通常称为工作空间。然而,不太明显的是,当您拥有Git存储库时,有两个不同的位置索引和存储。当您编写一些内容然后添加它时,它会被添加到索引中,索引是准备提交的缓存内容。有时索引中的文件尚未准备好提交,但您可能想检查其他分支。这时候临时存放就方便了。您可以使用gitstash来存储已建立索引但尚未提交到暂存区的文件。当您准备好取回文件时,运行gitstashpop将更改放回到索引中。
以下是使用暂存和缓冲所需的一些命令
gitdiffOrigin/master——显示最新本地提交与远程源仓库中master分支之间的差异。
gitdiff--cached——显示最近的本地提交和添加到本地索引的提交之间的差异。
gitstash——将索引文件放在暂存区域堆栈上。
gitstashlist——显示暂存区域堆栈中的更改。
gitstashpop——从临时存储库中删除最近的更改。
无头骑士
Git有很多隐喻。当我想到HEAD在哪里时,我就会想到火车线路。以分离的HEAD模式退出意味着我们已经偏离了这个类比的轨道。
HEAD是指向当前签出分支上最近提交的指针。基本的“签出”是创建一个Git存储库并转到master分支。每当您创建或修改另一个分支时,您都会切换到该分支线。当您在当前分支上的某个位置进行gitcheckout时,HEAD会移动到该提交。如果没有提交历史记录将当前提交链接到已检出的提交,则它将处于分离的HEAD状态。如果找不到HEAD的位置,可以随时使用gitReset--hardOrigin/master放弃更改并返回到已知状态。警告自上次推送到master以来的所有更改都将被删除。
上游还是下游?
项目的本地副本被视为本地存储库,它可能有也可能没有远程存储库。——远程存储库的副本用于协作或存储。还可能有一个上游存储库,其中项目的第三个副本由其他贡献者托管和维护。
例如,假设您想为Kubernetes做出贡献。首先,我将kubernetes/kubernetes项目fork到我的帐户mbbroberg/kubernetes。然后,让我们将项目克隆到本地工作区。在这种情况下,我的本地副本是我的本地存储库,mbbroberg/kubernetes是我的远程存储库,kubernetes/kubernetes是上游。
合并隐喻
如果你仔细观察Git分支,就会发现根系统的视觉效果与火车轨道的形象合二为一。分支通常用作开发最终想要合并到主分支中的新功能的一种方式。这样,Git按顺序保留常见提交的历史记录,然后将分支中的新提交添加到历史记录中。这个过程中有很多细节。BrentLaster在“如何在Git中重置、恢复和返回到先前状态”中更详细地解释了是否要变基或添加合并提交。
我现在想去Git
如果您想掌握Git命令的世界,有很多术语和地方需要探索。我们希望对我们每天使用的术语的第一人称探索能够帮助您理解它们。如果您遇到困难或感到沮丧,请通过Twittermbbroberg与我联系。
检查
提交——将当前索引的内容以及描述用户更改的日志信息保存到新提交。
提交分支——的分支指针。
master——第一个分支的默认名称。
HEAD——指向当前分支中最新提交的指针。
合并——合并两个或多个提交记录。
工作区工作区——Git存储库的本地副本的通俗名称。
WorkTreeWorkTree——工作区中的当前分支。您始终可以在gitstatus输出中检查这一点。
CacheCache——用于临时存储未提交更改的空间。
索引索引——在提交更改之前存储更改的缓存。
跟踪和未跟踪的文件——索引未缓存或尚未添加的文件。
Stash——另一个充当堆栈的缓存,可以在不提交更改的情况下存储更改。
来源——远程存储库的默认名称。
本地存储库——是您在工作站上存储Git存储库副本的位置。
远程存储库远程存储库——Git存储库的第二个副本,您可以将更改推送到其中以进行协作或备份。
上游存储库上游存储库——正在跟踪的远程存储库的通俗术语。
Pull请求Pull请求——这是GitHub的术语,用于通知其他人您已推送到存储库分支的更改。
合并请求合并请求——这是GitLab的术语,用于通知其他人您已推送到存储库分支的更改。
Origin/master——远程存储库及其默认分支的默认名称。
PS双关语是Git最好的部分之一。我希望你喜欢它。
via:开源.com
作者MatthewBroberg选择主题lujun9972译者wxy校对者wxy
本文由LCTT原创编辑,LinuxChina自豪发布。
单击“了解更多”以访文本中的链接。
No Comment