將 repo 推送到 github 后我無法提交。我基本上要做的是從一個 github 存盤庫克隆一些代碼,進行一些更改并將代碼推送到另一個 github 存盤庫。我制作了一些本地存盤庫,克隆了代碼,將代碼推送到另一個 GH 遠程存盤庫,一切都很好,現在當我對本地存盤庫進行一些更改并嘗試“添加”時。然后'commit -m'我收到這條訊息。

編輯:
在 'git add -A' 之后:

有什么想法嗎?
uj5u.com熱心網友回復:
你有一個子模塊。
具體來說,您的輸出包括以下內容(我必須重新輸入,所以這可能有拼寫錯誤——如果純文本可以,盡量不要使用螢屏截圖;這可以避免手動復制粘貼錯誤):
Changes not staged for commit: ... modified: FakeApiReqresTest (modified content)
括號中的短語(modified content)告訴我們這FakeApiReqresTest不是檔案。
有問題的子模塊是另一個 Git 存盤庫。另一個 Git 存盤庫有一個修改過的作業樹,即它的作業樹中的內容尚未提交。該上層專案庫只能記錄的散列ID一個特定的輔助模塊Git倉庫提交每上層專案提交。該git add命令在超級專案中運行,根據當前在子模塊中檢出的提交,將正確的提交哈希 ID 放入超級專案 Git 索引/暫存區。(這是否令人困惑?即使是我寫的,它也是我的?? 。)
這歸結為以下事實:您必須首先:
- 進入子模塊;
- 查看或檢查您在此處所做的檔案或更改;
- 決定是否應該添加和提交或根除它們;
- 然后根據需要添加并提交或根除。
結果是:
- 一個輔助模塊新的提交(你應該那么
git push到哪里它有云:記住這樣做是正常的子模塊生活在“分離的頭”狀態下,所以這git push有一個額外的皺紋,你必須處理),或 - 不同的作業樹的子模塊
或者甚至兩者兼而有之。如果您在執行此操作時更改了子模塊的作業樹,通常明智的做法是在繼續之前重新測驗整個超級專案。
一旦您在子模塊中實際提交了正確的提交,并且子模塊本身是“干凈的”,您現在就可以在超級專案中使用子模塊提交到超級專案的索引/作業樹。這可能會通過更新超級專案索引中的gitlink為您提供“為提交而暫存的更改” 。git statusgit addgit add
實作所需結果的示例命令
不要在沒有至少通讀和思考它們的情況下復制粘貼這些內容。 您應該使用哪些命令取決于很多事情。
# enter the submodule
cd FakeApiReqresTest
# inspect this Git repository; add and commit
git status
git diff
git add -u
git diff --cached
git commit
<enter appropriate commit message>
# send new commits upstream before using them in superproject
git push origin HEAD:somebranch
# update the superproject's gitlink
cd ..
git add FakeApiReqresTest
# verify, commit, etc
git status
git submodule status
git diff --cached
git commit
<enter appropriate commit message>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/346814.html
上一篇:Git合并請求和分支策略
下一篇:使用當前分支作為檔案名
