我的ubuntu服务器上有一个远程存储库
我在/home/USER/git/project.git/中运行了git init --bare
,并将其设置为从本地计算机推送到的远程URL。 /home/USER/git/project.git
指向/var/www/project/
,因为我有一个文件/home/USER/git/project.git/hooks/post-receive
接收后内容:
#!/bin/sh
GIT_WORK_TREE=/var/www/project git checkout -f
我可以推送对我的master分支所做的更改,它们将显示在/var/www/project/
中,但是如果我创建一个新分支,则该目录中不存在该更改。但是我可以在/home/USER/git/project.git
中看到它。分支为什么不进入结帐指向的文件夹?
谢谢
答案 0 :(得分:1)
您提交到def sub_array_sum(nums, k=0):
count, sum = 0, 0
map = dict()
map[0] = 1
for i in range(len(nums)):
sum += nums[i]
if map.__contains__(sum - k):
count += map[sum - k]
map[sum] = map.get(sum, 0) + 1
return count
之外的其他引用的承诺不会进入您的工作目录,因为您的钩子没有告诉git将它们放在那里。
您的裸仓库#Exit Script
$ExitList = Import-Csv "C:\File\path\test.csv"
Foreach($EUser in $ExitList) {
$DisabledUserParams = @{
AccountName = $EUser.pAccountname
UPN = "$($EUser.pAccountname)@company.com"
Department =$EUser.pDepartment
}
#For the licenses
$AccountSkuID = Get-MsolUser -UserPrincipalName $DisabledUserParams.UPN | Where-Object {($_.licenses).AccountSkuId -match "license 1"}
$AccountSkuID2 = Get-MsolUser -UserPrincipalName $DisabledUserParams.UPN | Where-Object {($_.licenses).AccountSkuId -match "license 2"}
$AccountSkuID3 = Get-MsolUser -UserPrincipalName $DisabledUserParams.UPN | Where-Object {($_.licenses).AccountSkuId -match "license 3"}
$Department = Get-MsolUser -UserPrincipalName $DisabledUserParams.UPN | select Department
Set-AzureADUser -ObjectId $DisabledUserParams.UPN -AccountEnabled $False
if($AccountSkuID.UserPrincipalName -match $DisabledUserParams.UPN) {
Set-MsolUserLicense -UserPrincipalName $DisabledUserParams.UPN -RemoveLicenses "reseller-account:O365_BUSINESS_PREMIUM"}
else{continue}
if($AccountSkuID2.UserPrincipalName -match $DisabledUserParams.UPN) {
Set-MsolUserLicense -UserPrincipalName $DisabledUserParams.UPN -RemoveLicenses "reseller-account:O365_BUSINESS_ESSENTIALS"}
if($AccountSkuID3.UserPrincipalName -match $DisabledUserParams.UPN) {
Set-MsolUserLicense -UserPrincipalName $DisabledUserParams.UPN -RemoveLicenses "reseller-account:DESKLESSPACK"}
Remove-DistributionGroupMember -Identity All -Member $DisabledUserParams.UPN
#For the Department to take of DLs and SMs and
if($Department.Department -match "Call Center") {
Remove-DistributionGroupMember -Identity callctr@company.com -Member -Member $DisabledUserParams.UPN | Remove-MailboxPermission -Identity CallCenter -User $DisabledUserParams.UPN -AccessRights FullAccess -Confirm:$False}
if($Department.Department -match "Sales") {Remove-DistributionGroupMember -Identity salesteam@company.com -Member -Member $DisabledUserParams.UPN}
位于master
;因此HEAD
将从master
更新工作树,而无论您刚刚推动什么。
我猜您可以编写一个更复杂的钩子,该钩子检查哪些ref是通过推送更新的,并且其行为相应;但是您可能会从措词(“ ref(s)”)中注意到一个问题。如果更新了多个裁判该怎么办?您要签出哪一个?
如果选择进行这种基于git的部署,通常的行为是分支对应于一棵工作树,并且通常意味着git checkout -f
对应于一棵工作树。
(根据记录,我不喜欢这种基于git的部署,因为不可避免的需求超出了可以方便完成的范围,人们开始努力使git尝试做真正的部署工具可以说,想让多个分支部署到同一工作树已经是一个例子。