AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 59501
In Process
Goober
Goober
Asked: 2009-08-28 03:17:42 +0800 CST2009-08-28 03:17:42 +0800 CST 2009-08-28 03:17:42 +0800 CST

Git 存储库源代码控制过程

  • 772

我对 Git 的理解如下:

1)工作树--->您手动进行更改的文件系统。
2) 暂存区 ---> 在提交之前更改所在的位置。
3)存储库--->提交的更改去哪里(本地或远程)。

基本上我真正想要的是:

1) 工作树 - 我桌面上的本地文件目录。
2) 暂存区 - 位于某处的联网服务器上。
3) 存储库 - 用于跟踪我的源代码的 GitHub。

我不确定我是否在阅读所有关于 Git 的文章时感到困惑,以及我刚才描述的情况是否真的可行?

本质上,我希望我团队中的所有开发人员都拥有源代码的本地工作树副本,然后能够将更改暂存到我们网络上的服务器,然后从这里执行到 GitHub 的最终提交。

这个对吗?还是暂存区必须在每台本地机器上?

亲切的问候

git
  • 3 3 个回答
  • 284 Views

3 个回答

  • Voted
  1. Mike Mazur
    2009-08-28T04:52:07+08:002009-08-28T04:52:07+08:00

    我认为值得在这里检查一下 git 中使用的术语:

    • git working tree:你当前正在处理的文件
    • git 暂存区:您在下一次提交中指定的文件
    • git 存储库:您机器上的一个目录,其中包含工作文件以及一个.git目录,其中包含完整的版本和分支历史记录等。

    在将另一个存储库克隆到他们的机器时,每个开发人员都有一个完整的 git 存储库。事实上,每个 git 存储库都有所有这些元素(除了我们不需要进入这里的裸存储库)。

    您想要的更多的是管理团队工作流程的流程或政策。你可以像这样设置它:

    1. 每个开发人员在他们的机器上都有他们工作的 git 存储库
      • 开发人员提交
      • 让它成为您在上面定义的工作树
    2. 一旦开发人员完成工作,他们就会git push提交到某个联网服务器上的 git 存储库
      • 这是您进行测试等的地方
      • 这是您团队的临时服务器
    3. 当新的提交通过所有测试时,你git push将它们带到他们在 github 上的最终 repo
      • 这是您团队的主要权威存储库

    请注意,每个项目符号都是一个git 存储库,可用于您需要的任何用途并将其定义为。

    开发人员在其工作站上进行提交。在那之后,git 所做的就是在 repos 之间打乱这些提交,无论它们在哪里,以及它们可能提供的任何功能。

    希望能把事情弄清楚一点。

    • 7
  2. sleske
    2009-08-28T04:30:22+08:002009-08-28T04:30:22+08:00

    好吧,这在技术上可能是可行的,但这不是暂存区背后的想法。

    暂存区的重点是控制您要提交的内容,以防您不想提交您在工作树中更改的所有内容。

    也许你在你的树中改变了几个不同的东西,并且只想提交其中的一些,或者你想不止一次地提交它们(给出不同的提交评论)。这就是您使用暂存区的目的。

    它并不意味着将事物暂存到服务器。

    为此,您应该创建一个分支(类似于“staging_branch”),提交它,然后通过诸如 CruiseControl 之类的 CI 工具在服务器上检查它。然后当一切正常时,您可以将其合并到您的主分支中。

    或者只是提交到你的主分支,如果出错就修复它:-)。

    • 3
  3. Joseph Kern
    2009-08-28T05:09:30+08:002009-08-28T05:09:30+08:00

    实际上,我刚刚看到Pro Git的作者的精彩网络广播(链接到本书的全文)。O'Reily 应该很快就会发布存档视频,请留意它。

    基本上,您必须学习一些基本的 git 命令:init、、、、和。这些将满足您的大部分需求。commitcheckoutpushbranch

    (请务必查看 Pro Git 的链接,这是一本关于 git 的免费书籍)

    • 0

相关问题

  • 如何使用 Gitosis 删除 Git 存储库

  • Git 和 Mercurial

  • 如何修复 git 中第一次提交的元信息?

  • 如何编辑 git 的历史记录以更正不正确的电子邮件地址/名称 [关闭]

  • git如何控制访问权限

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve