簡體   English   中英

Git提交前提交鈎子添加文件

[英]Git Pre-Commit Hook Adding File After Commit

我正在嘗試轉儲mysql數據庫並使用預提交鈎子將.sql轉儲文件添加到暫存區域,以便隨后可以將其包含在提交中(在Windows Server 2012 R2 / IIS上)。 下面的代碼很好地轉儲了數據庫,但是在我提交之后,它仍然在臨時區域中顯示be.sql文件……有時(?)-似乎是在提交commit((?)之后將文件添加到臨時中。 這是一個預先提交的鈎子,所以我不知道為什么在提交之后它可能會添加文件:

#!/bin/bash

# Dump Database
/c/Program\ Files\ \(x86\)/MySQL/MySQL\ Server\ 5\.7/bin/mysqldump.exe -u root --skip-extended-insert be > /c/inetpub/wwwroot/directory/be/be.sql

# Add Database
cd /c/inetpub/wwwroot/directory/be
git add be.sql

行為有點奇怪-我將看到be.sql仍在登台區域中,因此我將進行提交。 如果之后我發出git狀態,那棵樹就干凈了。 如果我再次提交並處於git status狀態,它將在登台索引中顯示修改后的be.sql文件(我沒有對其進行修改)。 來回走。 我只希望它轉儲.sql文件,然后將.sql文件添加到登台索引中,然后提交,以便每次登台索引都干凈時。 任何關於為什么發生這種情況的想法將不勝感激。

使用:

git commit -m "Message" --allow-empty

進行提交時似乎起作用了。 好像git需要其他分階段的更改才能使該鈎子起作用。 因此,它基本上不是在進行提交,而是仍在轉儲be.sql文件,該文件隨后將在登台索引中顯示為下次修改,因為日期已更改。 為了使提交完全通過,無論是否進行了其他分段更改,我使用了--allow-empty選項,該選項允許在分段索引中不包含任何內容的提交。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM