簡體   English   中英

github 更改未暫存以進行提交

[英]github changes not staged for commit

我有一個非常基本的 github 設置,其中包含一個自述文件、一個目錄和另一個包含 html 文件的目錄。 在 github 上,我只能查看自述文件和第一個文件夾,但不能查看其中的任何內容,並且收到此消息

tc349 ryntc3$ git add *
tc349 ryntc3$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
(commit or discard the untracked or modified content in submodules) 

modified:   week1 (modified content)

no changes added to commit (use "git add" and/or "git commit -a")

我覺得如果我將所有內容都添加到舞台上,那應該不是問題。 有什么幫助嗎?

你有沒有嘗試過

git add .

這會遞歸到子目錄中,而我認為 * 不會。

這里

警告! 這將刪除您的子模塊的整個 Git 歷史記錄。 僅當您意外創建子模塊時才執行此操作。 在大多數情況下,這當然不是您想要做的。

我認為您必須進入week1文件夾並刪除.git文件夾:

sudo rm -Rf .git

然后返回頂級文件夾並執行以下操作:

git add .

然后提交並推送代碼。

就我而言,我需要一個

 git add files
 git commit -am 'what I changed'
 git push

需要提交上的“a”。

week1是一個子模塊嗎?

請注意git status命令輸出中的相關部分:

(提交或丟棄子模塊中未跟蹤或修改的內容)

嘗試cd week1並發出另一個git status以查看您對week1子模塊進行了哪些更改。

有關子模塊如何在 Git 中工作的更多信息,請參閱http://git-scm.com/book/en/Git-Tools-Submodules

警告! 這將刪除您的子模塊的整個 Git 歷史記錄。 僅當您意外創建子模塊時才執行此操作。 在大多數情況下,這當然不是您想要做的。

在我的情況下,有一個子目錄,其中有一個.git目錄。

我所做的只是從我的子目錄中刪除那個.git目錄。

我遇到了同樣的問題。 我最終進入了“未為提交而暫存”的子目錄,並從那里添加、提交和推送。 之后,上一級到主目錄並能夠正確推送。

對我來說,我必須提交包含.git的子目錄,因為父文件夾和子文件夾都有要推送到的遙控器。 然后提交並推送父目錄。

這個命令可以解決問題:

git add -A

所有文件和子目錄都將被添加以進行跟蹤。

希望能幫助到你

如果它是一個子模塊,你需要 cd 進入它然后使用git add . && git commit -m 'Your message' git add . && git commit -m 'Your message'

從那里你可以退出並推送到你想要的任何分支。

在我的情況下,問題是我要推送的子文件夾本身就是一個 git 文件夾

所以我做了以下

  1. 進入要推送的子文件夾並運行:
rm -rf .git
  1. 然后運行這個:
 git rm --cached <subfolderName>
  1. 然后來到主項目文件夾並運行它(確保在文件夾名稱后添加 / )
    git add <folderName>/
    git commit -m "Commit message"
    git push -f origin <branchName>

無論我做什么,我都不斷收到相同的消息。

為了解決這個問題,我刪除了 .gitignore 並且我沒有得到不再為提交消息暫存的 Github 更改。 在它允許我在運行 git add 時提交一次之前。 然后它會顯示相同的消息。

我不知道為什么 .gitignore 文件會導致問題,但我在本地機器上添加了,很可能沒有正確同步它。

我嘗試了整個 Stackoverflow 上建議的所有內容。 沒有包括 -a 或 -am 或任何幫助。

如果你是一樣的,請這樣做。

所以,問題是,git 認為你的一些子目錄是你的根項目中的子項目。 至少,就我而言,情況並非如此。 它只是普通的子目錄。 不是個人項目。

移動沒有被推送到某個臨時位置的常規子目錄。

從該目錄中刪除隱藏的 .git 文件夾。

cd到根目錄。

再次git init

git add . 再次。

git commit -m "removed notPushableDirectory temporarily"

git push -f origin master

我們將不得不強制它,因為 git 會看到遠程 git 和您的本地結構之間的沖突。 請記住,我們制造了這場沖突。 所以,不要擔心強迫它。

現在,它將將該子目錄作為子目錄而不是作為根項目中的子模塊或子項目推送。

相信這是因為您有一個子存儲庫“子模塊”,其中包含尚未上演和提交的更改。

有一個類似的問題,我的 IDE 不斷報告未提交的更改,並且運行階段 ( git add . ) 和提交 ( git commit -m "message" ) 命令沒有效果。 事后想想,這可能是因為子存儲庫具有需要暫存和提交的更改,而不是父存儲庫。

解決問題的步驟

  1. cd進入子模塊(有一個名為.git的隱藏文件夾)並執行命令來git add .git add . )和提交( git commit -m "Update child repo"
  2. cd ..回到父倉庫,並執行命令來git add .git add . )和提交( git commit -m "Update parent repo"

沒有幫助的建議

  • sudo rm -Rf .git == 請勿使用此命令 == 它會永久刪除子模塊存儲庫歷史記錄(GIT 的目的)
  • git add -A === 添加了未跟蹤的文件,但沒有解決問題

暫無
暫無

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

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