git-push能做到这一点吗?

git-push能做到这一点吗?,git,Git,关于git的几个问题 目前,我是唯一的用户,并且在我的存储库中成功地运行了一些基本命令,我对事情看起来的方式很满意。但是,我希望允许不同的用户管理和更改存储库。我一直在读有关推/拉等的书,但还没有完全理解。如果我想实现这一目标,我可以就阅读内容提出建议: [发布目录]例如:/release/live [developer1]例如:/developers/developer1 [developer2]例如:/developers/developer2 假设开发人员在他的目录中工作,然后希望使他的版

关于git的几个问题

目前,我是唯一的用户,并且在我的存储库中成功地运行了一些基本命令,我对事情看起来的方式很满意。但是,我希望允许不同的用户管理和更改存储库。我一直在读有关推/拉等的书,但还没有完全理解。如果我想实现这一目标,我可以就阅读内容提出建议:

[发布目录]例如:/release/live

[developer1]例如:/developers/developer1 [developer2]例如:/developers/developer2


假设开发人员在他的目录中工作,然后希望使他的版本成为最终版本。他需要在“/发布/直播”上“推动”他的集结区?还有,如果他推出的版本把事情搞砸了呢。我怎么回去?此外,内容存储在哪个分支中?要允许developer1推送到发布目录,我需要处理哪些类型的权限?这两个目录都在同一台服务器上,所以我不需要为SSH或其他任何事情操心。

开始学习工作流(并更熟悉Git)的好地方是它也很棒;我极力推荐

为了防止“把事情搞砸”,我建议用分支和标记更深入、更舒适地挖掘

防止不想要的开发人员访问特定的分支(如您的“发布”分支),考虑.< /P> 祝你好运

这两个目录都在同一台服务器上,所以我不需要为SSH或任何事情操心

当所有内容都在同一台服务器上时,您需要一个裸存储库(
git init--bare
),每个开发人员都可以将其更改推送到(=可由所有用户写入)。推入非裸存储库是自找麻烦

[我假设您的服务器正在运行linux/bsd/macos]当您的用户是不同的unix用户时,您不仅需要
chmod g+w
repositoy,还需要在所有目录上设置粘性位(这意味着新创建的目录也会继承权限位,否则用户创建的第一个目录很可能是755,这意味着其他用户无法在此目录中创建文件)

假设开发人员在他的目录中工作,然后想要使他的版本成为最终版本。他需要将他的暂存区域“推”到“/release/live”上

典型的工作流程是,开发人员将更改推送到公共存储库中,然后通过
/release/live
中的
git pull
将这些更改传输到
/release/live
(您还可以使用公共存储库中的挂钩自动执行此步骤)

此外,只有当新分支标头是已存在的标头的后代时,才能推入远程分支。这意味着您只能在没有其他人将某个内容推入此分支时推入远程分支。当有人推入此分支时,您需要拉入此新分支内容,然后合并或重新设定您自己的更改它与新的分支内容保持一致

还有,如果他推出的版本把事情搞砸了,我怎么能回去呢

您可以始终
git checkout
项目的旧版本。此外还有
git revert
命令,用于撤消对给定提交的更改

此外,内容存储在哪个分支中

启动新的git回购时,所做的更改将存储在
主分支中。您可以使用
git branch MyNewBranchName
创建一个新分支(然后保持在
主分支中
)或
git checkout-b MyNewBranchName
(这也会将您的工作副本移动到新分支)。您可以使用
git branch
(无任何参数)查找您当前的分支名称,然后您的当前分支前面会标记一个星号。当您不再需要分支时,您可以使用
git branch-d MyNewBranchName
将其删除(这将确保此分支的所有提交都合并到其他活动分支中)或
git branch-D MyNewBranchName
(这将删除该分支,并且未合并到其他分支中的提交最终会在垃圾收集运行期间丢失)


关于分支的另一个很好的资源是。

啊,写鲁迪一定花了一段时间。非常感谢!我将重新阅读它并消化信息。虽然我知道你提到的一些命令……但是,令人惊讶的回答!谢谢布莱斯,我会读一读。这会让我有一点忙的!