[英]Git: Remove committed file after push
是否有可能恢復 Git 中提交的文件? 我已經將提交推送到 GitHub 然后我意識到有一個我不想推送的文件(我還沒有完成更改)。
更新:添加了更安全的方法
檢查文件的先前(未更改)狀態; 注意雙破折號
git checkout HEAD^ -- /path/to/file
提交它:
git commit -am "revert changes on this file, not finished with it yet"
推它,不需要用力:
git push
回到你未完成的工作,再做一次(向上箭頭 3 次):
git checkout HEAD^ -- /path/to/file
修改存儲庫 HEAD 的最后一次提交,混淆您意外推送的工作,同時可能與您的同事發生沖突,他可能已經拉取了它,並且會長出白發並浪費大量時間試圖協調他的本地分支負責人與中央:
要從上次提交中刪除文件更改:
要將文件恢復到上次提交之前的狀態,請執行以下操作:
git checkout HEAD^ /path/to/file
要使用恢復的文件更新最后一次提交,請執行以下操作:
git commit --amend
要將更新的提交推送到 repo,請執行以下操作:
git push -f
真的,考慮使用前面提到的首選方法。
如果要從遠程存儲庫中刪除文件,請首先使用 --cache 選項將其從項目中刪除,然后推送它:
git rm --cache /path/to/file
git commit -am "Remove file"
git push
(即使文件在某些提交之前已添加到遠程存儲庫,這也有效)請記住將您不想推送的文件擴展名添加到 .gitignore。
您只能將一個文件恢復到指定的修訂版。
首先,您可以檢查文件已更改的提交。
git log path/to/file.txt
然后,您可以使用修訂號簽出文件。
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
之后,您可以提交並再次推送它。
將文件重置為正確的狀態,提交並再次推送。
如果您確定還沒有其他人獲取您的更改,您可以在提交時使用--amend
來修改您之前的提交(即重寫歷史記錄),然后推送。 不過,我認為您必須在推送時使用-f
選項來強制推送。
獲取上次提交的哈希碼。
git log
git revert <hash_code_from_git_log>
git push
在 GHR 中查看。 你可能會得到你需要的東西,希望你這是有用的
使用git rm --cached /path/to/file
然后添加、提交和推送。 就像上面的答案一樣,但您需要使用--cached
而不是--cache
。
您可以使用以下工作流程:
git reset --soft HEAD~1
git reset HEAD /path/to/file
我遵循了這些步驟[它總是發生在我身上,尤其是節點模塊文件夾]
1- git 日志
2- git 還原 04409a858709c82fbf9eae7559d6ae9c34b6fbe6
用你承諾的號碼更改號碼
<它將是像這樣的長數字 04409a858709c82fbf9eae7559d6ae9c34b6fbe6>
3-git 推送
這對我有用,但請記住,這里有一個技巧,您的第一次提交將是列表中的最后一次提交,因此請檢查日期和提交消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.