关闭。这个问题需要更多focused .它目前不接受答案。
想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .
7年前关闭。
Improve this question
看来我得学会使用git了。这可能是一件好事(TM)。
然而阅读在线指南和手册页,我就是无法理解这些术语。一切总是根据它们自己或其他无法解释的术语来定义(做一个“man git”,你明白我的意思)。
那么,是否有更类似于 DAG 的术语定义结构,包括以下一些内容(均来自 git 手册页!)。也许使用文件系统作为起点,而不是假设读者精通 svn(我不是)。
虽然我可以找到对某些的解释,但它们通常是针对其他的。还有一些我从其他上下文中知道的其他术语(如 UNIX 差异)。然而其他一些我以为我知道......
我收集到有存储库(类似于 gits?和/或树?上游?),您可以复制(克隆?分支?)以将文件物理地传输到硬盘驱动器。然后是分支(类似于变更集?),标签和提交(类似于补丁?),但它们的区别并不明确。什么文件做什么修改?是什么让我的文件留在本地,什么可能(天堂禁止)将我的代码提交给互联网?
推荐的工作方式是什么,当涉及到分支、标签和提交时——所以很容易在版本之间交换,并从公开可用的 gits 导入更新。
//T,咬着舌头控制自己的挫败感...
最佳答案
这是完成您的词汇表的尝试(从我的头顶开始,尝试使用我自己的话):
origin
commit
之一, tree
, blob
, tag
.一个对象关联了它被引用的 SHA1 哈希(ID 为 deadbeaf
的提交,树 decaf
)。共享同一对象的所有存储库之间的哈希值是相同的。它还保证了存储库的完整性:您不能在不更改所有子提交的哈希值的情况下更改过去的提交。 HEAD
、 master~4^2
、 origin/master..HEAD
、 deadbeaf^!
、...)描述某个 git 对象或一组提交 |118567你没有提到的事情,但可能很高兴知道:
您所做的一切都在您的存储库本地(由
git init
或 git clone git://url.com/another/repo.git
创建)。 git 中只有少数命令与其他存储库(又名 teh interwebz)交互,包括 clone
, fetch
, pull
, push
.推和 pull 用于同步存储库。 pull
fetch
es 来自另一个存储库的对象并将它们与您当前的分支 merge 。推送用于接受您的更改和 push
他们到另一个存储库。您不能推送单个提交或更改,您只能推送包含其完整历史记录的提交。单个存储库可以包含多个分支,但不是必须的。 git 中的默认分支名为
master
.您可以根据需要创建任意数量的分支,使用 git merge 是小菜一碟。分支是本地的,直到您运行 git push origin <branch>
.提交描述了项目的完整状态。这些状态可以相互比较,从而产生“差异”(
git diff origin/master master
= 查看 origin/master
和 master
之间的差异)Git 在准备提交时非常强大。这里的关键因素是“索引”(或“暂存区”)。您可以向索引添加单个更改(使用
git add
),直到您认为索引看起来不错。 git commit
启动你的文本编辑器,你需要提供一个提交信息(你为什么以及如何进行更改);输入您的提交消息后,git 将在前一个提交(父指针是前一个提交的 SHA1)之上创建一个新的提交——包含索引的内容。
关于git - Git 使用的术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7076164/