我有一些奇怪的場景發生&我不確定如何診斷問題。當推送到遠程原點/主設備時,Git commit恢復爲stage0
概述
我已經被初始化爲git的回購3個環境:
- 生產
- 分期
- 開發
分期是一個git克隆Production和Dev是Staging的git克隆。工作流的目的是允許任意數量的本地開發環境(Dev),然後可以將它們推送到臨時回購(Staging)進行審查。一旦審查和批准,我就可以從分期推進到生產。
問題
當克隆分期回購到本地開發環境,克隆工作正常。但是,如果在Dev上提交本地更改,然後將其推回到Staging上的origin/master,則Dev commit中更改的文件將不會被應用。
當我將開發提交正在展現在歷史上的遠程服務器上運行git log
,他們只是沒有被「應用」(即從我的本地開發環境中的文件更改將不會被應用到遠程產地/主)。但是,奇怪的是 - 在本地Dev上,如果我對文件進行更改,提交&推送到Staging origin/master,然後在Staging上運行git status
,Dev Commit中的文件顯示爲「staged」。
我完全不知道這裏發生了什麼。我試圖從分期中克隆一個全新的開發者回購,併發生同樣的問題。
這裏是我的每個環境混帳配置設置:
生產配置(遠程)
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[receive]
denyCurrentBranch = ignore
分期配置(遠程)
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[receive]
denyCurrentBranch = ignore
[remote "origin"]
url = /home/xxx/public_html
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
開發配置(本地)
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = ssh://[email protected]:port/home/username/staging/1
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
好信息。我知道由於權限問題(或缺少),git不應該用於部署,但是由於這是一個相對簡單的流程,我正在嘗試。如果我理解正確,在這個設置我有 - 問題發生,因爲「分期」是一個「生產」的克隆,因爲它是一個非光禿的克隆的回購 - 我遇到了從開發推動的問題。從理論上講,如果我將「生產」和「開發」環境同時從「分段」克隆 - 我是否仍然遇到工作樹不會自動更新的問題? –