![]() |
1
12
当推送到远程存储库时,最好的结果是远程存储库是一个没有工作目录的“裸”存储库。听起来您在远程存储库上有一个工作目录,在执行推送时,Git不会更新该目录。 对于您的情况,我建议开发人员拥有自己的测试环境,在将代码推送到其他地方之前,可以在本地对其进行测试。有一个中心位置,每个人都需要在工作之前推动他们的工作。 尝试 它会导致很多痛苦和痛苦。 对于部署,我建议将其推送到一个中央“裸”存储库,然后拥有一个流程,其中部署服务器 拉扯 从中央存储库到其工作目录的最新代码。 |
![]() |
2
3
当您推送到(共享)Git存储库时,它不会更新该存储库的工作文件。基本上,因为工作文件可能是脏的,在这种情况下,您必须合并——为此,您需要在那里具有完全的shell访问权限,一般情况下可能不是这样。 如果您希望在某个地方签出共享回购的最新“主数据”,可以通过编写更新后挂钩来安排。我将给出下面的一个示例,用于签出“ui”子目录并使其可供Apache使用。 但是,我认为您的流程可以改进。开发人员通常需要在推进到共享点之前可以测试的个人服务器:否则,共享的repo可能非常不可靠。考虑一下,如果我推动一个改变,但它不起作用,是我的改变打破了它还是其他人的副作用? 好的,我把它用作更新后的钩子:
如前所述,这只是检查“ui”子目录。这是“:ui”位设置新的_tree_id。只需取出“:ui”(或更改为“^ tree”)即可查看所有内容。 签出位于包含git repo的目录中,由output_dir控制。脚本应该在git repo内部运行(反过来,应该是裸的):这不是很干净。 签出被放在“treeXXXX”目录中,并管理一个“current”符号链接指向最新的。这使得从一个原子变为另一个原子,尽管它不太可能花那么长时间才重要。它还意味着还原重用旧文件。这也意味着它会在你不断推修订版的时候,消耗磁盘空间… |
![]() |
3
0
有同样的问题,也和姜戈一起工作。 如前所述,同意在部署前进行本地测试。 然后可以将本地版本推送到服务器上的新分支。然后,您将与这个分支和主节点进行合并。之后,您将看到更新的文件。 如果你不小心被推到主分支,那么你可以做一个Git重置——很难。但是,当前工作分支中未提交的所有更改都将丢失。所以要小心。 |
![]() |
charleslcso · 从开源克隆并推送到我的GitHub[重复] 1 年前 |
|
Itachi · 无法为python项目安装“DAWG”包 1 年前 |
![]() |
Igor · git重置已删除目录上的头 2 年前 |
![]() |
Robo · 撤消删除Git中被忽略的文件 3 年前 |
![]() |
Ali EXE · 如何根据bat中命令的输出设置变量? 3 年前 |
![]() |
ShortArrow · 如何使用git管理链接源文件? 3 年前 |
![]() |
Siggi · 使用git移动文件时丢失历史记录 3 年前 |