簡體   English   中英

如何讓 github 分支接受從其他分支推送的更改,但它一直說沒有什么可以提交?

[英]How to get a github branch to accept changes pushed from other branches but it keeps saying that there is nothing to commit?

這是故事。

我們有兩個分支。 發展,然后是法師。 On Github, it's setup so we can only push from local to development on github and then we can only merge to master from github, and then we push to heroku from master.

我們合並了兩個分支到develop,然后到master,然后推送到Heroku。 其中一個分支有一個我們在開發中沒有發現的巨大錯誤。

所以我們將 heroku 恢復到我們之前的狀態(沒問題)。 但是當我們開始嘗試回滾並恢復其他分支時,麻煩就出現了。

現在,一團糟。 我們嘗試了很多方法來修復它,但都沒有成功。

快進到現在:我們得到了工作代碼的開發分支,並試圖將其重新合並為 master。 但是,github 表示沒有差異,因此無法提交更改。 但是,當我們查看 github 上每個分支的代碼時,開發有代碼,而大師沒有。 那么為什么 github 告訴我們沒有區別呢?

接下來,我們恢復了該開發分支並嘗試刪除該開發分支。 然后,我們嘗試在開發時從頭開始再次創建拉取請求,並將其推送到 github。 但是,現在它再次告訴我們,沒有任何變化,所以我們不能合並到開發中。

我們不知道該怎么辦。 我們似乎無法使用舊分支。 我們似乎無法從頭開始重新編碼分支。 似乎 github 認為某些代碼不存在,而其他代碼不存在,Github 認為存在。 有什么想法可以解決這個問題嗎?

它完全一團糟。 我可以從您的帖子中推斷出您想要恢復到代碼。

git log -v

我會告訴你所有的提交。 現在找到您想要返回或恢復更改的提交 ID 號。

然后做git reset --hard <commit-id>
但請注意,您將無法恢復重置。 所以最好使用 git 創建一個分支

git branch <branch-name>
git checkout <branch-name>

你會回到那個提交。

我們了解了一些關於 git rebase 的知識,似乎已經解決了這個問題。 我們終於讓一切恢復正常。 以下是我們修復它的方法,我也可以解釋我們的新工作流程以確保它不會再次發生:

a) 切勿同時將兩個或多個分支合並到生產環境中。 分別推送每個分支,進行實時測試,如果一切正常,則將下一個批准的分支實時推送到生產環境。 這樣,如果出現問題,您不必回滾壞代碼。 您可以回滾導致錯誤的那個 PR,並繼續推送好的代碼。

b) 了解 git 變基。 雖然我們不是專家,但學習基礎知識確實幫助我們解決了一些問題。

c) 我們發現了如何使用 git 的力量讓 git 在脾氣暴躁時做你想做的事。

d) 我們了解到,僅僅因為您認為您已經對所有內容進行了完美測試,並且將 PR 推送到生產環境不會導致問題......它可以。 而且很有可能。

因此,雖然我們的新工作流程更慢,而且我們更加小心,但結果是我們可以輕松回滾導致站點崩潰的部署,因為現在,我們知道只有一個 PR 導致了崩潰。 然后網站重新啟動並運行,我們可以努力找出修復錯誤的方法。

暫無
暫無

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

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