我有一個git設置與兩個倉庫,這兩個都是讀/寫(我通常在一個代碼,但有時我也在另一個代碼)。我的工作流程通常是我在本地回購工作,然後當我準備好測試我的更改時,我將我的提交推送到其他遠程回購,我實際上構建了我的項目。然而,出於某種原因,當我從本地到遠程推送時,遠程存儲庫上的更改是「倒置的」,即更新了存儲庫,但更改的反面(即將遠程回購變回其更改的更改預先推送狀態)在索引中註冊。推送到遠程git倉庫索引
例如,假設我有一個評論// This is a comment
,我已經更新到說// This is a comment that has been updated
本地,然後推到我的遠程回購的文件時,我得到了我的遠程回購如下:
remote_repo$ git diff --cached
-// This is a comment that has been updated
+// This is a comment
顯然,我可以通過運行git reset --hard
將它們置於相同的狀態,但有沒有其他方法可以實現此目的和/或使其自動化?我希望大多數人會建議添加一個運行git reset --hard
的post-receive掛鉤,但我希望這可以通過一種乾淨的方式進行配置。
注意:此時索引中的內容是在推送之前索引*中的內容。這就是問題的根源:索引與之前的HEAD提交匹配,但是HEAD本身已經發生了某種變化,現在已經解決了一個新的不同的提交。你不需要硬復位(混合復位就足夠了),但總的來說,這有點陷阱。 – torek
Doh,回想起來總是有道理。我意識到這是一個尷尬的工作流程,但我擁有兩個倉庫,任何人都不能訪問,所以危險實際上只是一個不便。 – DIMMSum