【问题标题】:How to use git for multiple developers如何为多个开发人员使用 git
【发布时间】:2020-12-13 11:35:51
【问题描述】:

对于有经验的 Git 用户来说,这是一个非常简单的问题。 我已经在 git 主机上创建了存储库并设置了我的电脑:

git init
git remote add origin git@*.sourcerepo.com:*/ *.git

然后,我做了一些改变:

git add .
git commit
git push

所有这些操作都在第一台开发者电脑上完成。

现在的问题是:第二个开发人员如何访问并更改 repo? 首先他必须克隆 repo?

【问题讨论】:

标签: git version-control


【解决方案1】:

是的,你会使用克隆。您还应该确保设置 sharedrepository 配置选项:

git config core.sharedRepository "true"

您还应该知道,对于多个提交者,fetch 选项可以让您预览主存储库中的更改,以及它们将如何应用于您:

git fetch
git diff origin

或者您可能只想查看文件列表并分别区分每个文件:

git diff --name-status origin

【讨论】:

    【解决方案2】:

    是的。这将是

     git clone $giturl
     git add .
     git commit
     git push
    

    为了他。

    【讨论】:

      【解决方案3】:

      当多个开发人员应用补丁时,请注意选项:
      在 Git 2.30(2021 年第一季度)中,“git apply”错误地根据core.sharedRepository 设置调整了工作树文件和目录的权限位,并且 很久了,已经更正了。

      apply: 不要使用 core.sharedRepository 创建工作树文件

      core.sharedRepository 定义了 Git 在 $GIT_DIR 中创建文件时应该设置哪些权限,以便可以与其他用户共享存储库。

      但是(以当前形式)该设置不应影响文件在工作树中的创建方式。

      applyam(使用 apply)在创建前导目录时不遵守这一点:

      $ cat d.patch
       diff --git a/d/f b/d/f
       new file mode 100644
       index 0000000..e69de29
      

      无需设置即可应用:

      $ umask 0077
      $ git apply d.patch
      $ ls -ld d
       drwx------
      

      应用设置:

      $ umask 0077
      $ git -c core.sharedRepository=0770 apply d.patch
      $ ls -ld d
       drwxrws---
      

      只有前导目录受到影响。
      那是因为它们是用safe_create_leading_directories() 创建的,它调用adjust_shared_perm() 来设置目录的权限 core.sharedRepository.

      为了解决这个问题,让我们引入一个忽略设置的函数变体,并在apply 中使用它。
      还要在函数文档中添加回归测试和关于使用的注释 根据目的地(工作树或 git 目录)的每个变体。

      【讨论】:

        猜你喜欢
        • 2016-01-30
        • 2015-02-15
        • 2018-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-19
        • 2016-12-08
        相关资源
        最近更新 更多