我对 Git 的理解如下:
1)工作树--->您手动进行更改的文件系统。
2) 暂存区 ---> 在提交之前更改所在的位置。
3)存储库--->提交的更改去哪里(本地或远程)。
基本上我真正想要的是:
1) 工作树 - 我桌面上的本地文件目录。
2) 暂存区 - 位于某处的联网服务器上。
3) 存储库 - 用于跟踪我的源代码的 GitHub。
我不确定我是否在阅读所有关于 Git 的文章时感到困惑,以及我刚才描述的情况是否真的可行?
本质上,我希望我团队中的所有开发人员都拥有源代码的本地工作树副本,然后能够将更改暂存到我们网络上的服务器,然后从这里执行到 GitHub 的最终提交。
这个对吗?还是暂存区必须在每台本地机器上?
亲切的问候
我认为值得在这里检查一下 git 中使用的术语:
.git
目录,其中包含完整的版本和分支历史记录等。在将另一个存储库克隆到他们的机器时,每个开发人员都有一个完整的 git 存储库。事实上,每个 git 存储库都有所有这些元素(除了我们不需要进入这里的裸存储库)。
您想要的更多的是管理团队工作流程的流程或政策。你可以像这样设置它:
git push
提交到某个联网服务器上的 git 存储库git push
将它们带到他们在 github 上的最终 repo请注意,每个项目符号都是一个git 存储库,可用于您需要的任何用途并将其定义为。
开发人员在其工作站上进行提交。在那之后,git 所做的就是在 repos 之间打乱这些提交,无论它们在哪里,以及它们可能提供的任何功能。
希望能把事情弄清楚一点。
好吧,这在技术上可能是可行的,但这不是暂存区背后的想法。
暂存区的重点是控制您要提交的内容,以防您不想提交您在工作树中更改的所有内容。
也许你在你的树中改变了几个不同的东西,并且只想提交其中的一些,或者你想不止一次地提交它们(给出不同的提交评论)。这就是您使用暂存区的目的。
它并不意味着将事物暂存到服务器。
为此,您应该创建一个分支(类似于“staging_branch”),提交它,然后通过诸如 CruiseControl 之类的 CI 工具在服务器上检查它。然后当一切正常时,您可以将其合并到您的主分支中。
或者只是提交到你的主分支,如果出错就修复它:-)。
实际上,我刚刚看到Pro Git的作者的精彩网络广播(链接到本书的全文)。O'Reily 应该很快就会发布存档视频,请留意它。
基本上,您必须学习一些基本的 git 命令:
init
、、、、和。这些将满足您的大部分需求。commit
checkout
push
branch
(请务必查看 Pro Git 的链接,这是一本关于 git 的免费书籍)