我創建了我的服務器啓動時運行的shell腳本。 它的目標是從我的遠程倉庫拉最新更新:的Git拉的原因要刪除的文件
#!/bin/sh
branch="production_test";
git --git-dir=/var/www/html/.git checkout -b $branch
git --git-dir=/var/www/html/.git pull https://username:[email protected]/my/path/to/repository.git $branch
爲了測試它,我添加了一個名爲test.file
文件到我的本地庫,致力於並將其推到遠程存儲庫。
起初,當我重新啓動我的服務器,我想,既然我/var/www/html
文件夾中沒有任何改變的腳本未運行。
但是,當我做git status
它顯示我test.file被標記爲刪除。
當我做git log
我看我上次提交。
如果我手動運行我的服務器腳本 - 它完美的作品。
什麼原因呢?也許Ubuntu
有某種防衛文件變化的層(我只是在黑暗中拍攝)?
UPDATE
這是一個日誌文件的輸出到我重定向既STD和stderr到:
fatal: A branch named 'production_test' already exists.
From https://bitbucket.org/my/path/to/repository.git
* branch production_test -> FETCH_HEAD
Merge made by the 'recursive' strategy.
test.file | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test.file
fatal: A branch named 'production_test' already exists.
From https://bitbucket.org/my/path/to/repository.git
* branch production_test -> FETCH_HEAD
Already up-to-date.
這是git status
命令的重新啓動後的輸出:
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: test.file
我可以從輸出中瞭解到bash腳本可能通過2個rc.d引導命令運行了兩次。但它並不能解釋這種行爲。
您可將這個腳本的輸出一些日誌文件,看看發生了什麼事? –
@RomanZaytsev我將它添加到我的問題中。日誌看起來很好..不解釋文件的刪除.. –