在Git中是否有可能还原提交的文件?我已经向GitHub推送了一个提交,然后我意识到有一个文件我不想被推送(我还没有完成修改)。
ttygqcqt1#
git checkout HEAD^ -- /path/to/file
1.提交:
git commit -am "revert changes on this file, not finished with it yet"
1.推动它,无需用力:
git push
1.回到你未完成的工作,再次做(3次箭头向上):
修改仓库HEAD的最后一次提交,混淆您意外推送的工作,同时可能会与您的同事发生冲突,因为他可能已经将工作拉出来了,他将长出白发,并浪费大量时间试图协调他的本地分支负责人与中心负责人:要从上次提交中删除文件更改:1.要将文件恢复到上次提交前的状态,请执行以下操作:
git checkout HEAD^ /path/to/file
1.要用恢复的文件更新最后一次提交,请执行以下操作:
git commit --amend
1.要将更新后的提交推送到存储库,请执行以下操作:
git push -f
真的,考虑使用前面提到的首选方法。
zwghvu4y2#
如果你想从远程存储库中移除文件,首先使用--cache选项将其从项目中移除,然后推送它:
git rm --cached /path/to/file git commit -am "Remove file" git push
(This即使文件在提交之前已经被添加到远程存储库中,也能正常工作)记住将不想推送的文件扩展名添加到.gitignore中。
hrirmatl3#
只能将一个文件恢复为指定的版本。首先,您可以检查文件更改了哪些提交。git log path/to/file.txt然后可以使用修订号检出文件。git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt之后,您可以提交并再次推送它。
git log path/to/file.txt
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
sbtkgmzw4#
您可以使用以下工作流:
git reset --soft HEAD~1 git reset HEAD /path/to/file
d7v8vwbk5#
将文件重置为正确的状态,提交,然后再次推送。如果你确定没有其他人获取你的修改,你可以在提交时使用--amend来修改你之前的提交(即重写历史),然后推送。我认为你必须在推送时使用-f选项来强制推送。
--amend
-f
9q78igpj6#
使用git rm --cached /path/to/file然后添加,提交和推送。就像上面的答案,但你需要使用--cached而不是--cache。
git rm --cached /path/to/file
--cached
--cache
oalqel3c7#
git log
git revert <hash_code_from_git_log>
checkout 在ghrs。你可能会得到你所需要的,希望你这是有用的
r6l8ljro8#
我遵循了以下步骤[我经常遇到这种情况,尤其是在节点模块文件夹中]1-git日志2-git回复程式用你承诺的号码换号码将是像这样的长号码04409a858709c82fbf9eae7559d6ae9c34b6fbe63-git推送这对我很有效,但请记住,这里有一个技巧,你的第一个提交将是列表中的最后一个,所以检查日期和提交信息。check this image from my terminal
8条答案
按热度按时间ttygqcqt1#
首选方法:
1.提交:
1.推动它,无需用力:
1.回到你未完成的工作,再次做(3次箭头向上):
有效地“未提交”:
修改仓库HEAD的最后一次提交,混淆您意外推送的工作,同时可能会与您的同事发生冲突,因为他可能已经将工作拉出来了,他将长出白发,并浪费大量时间试图协调他的本地分支负责人与中心负责人:
要从上次提交中删除文件更改:
1.要将文件恢复到上次提交前的状态,请执行以下操作:
1.要用恢复的文件更新最后一次提交,请执行以下操作:
1.要将更新后的提交推送到存储库,请执行以下操作:
真的,考虑使用前面提到的首选方法。
zwghvu4y2#
如果你想从远程存储库中移除文件,首先使用--cache选项将其从项目中移除,然后推送它:
(This即使文件在提交之前已经被添加到远程存储库中,也能正常工作)记住将不想推送的文件扩展名添加到.gitignore中。
hrirmatl3#
只能将一个文件恢复为指定的版本。
首先,您可以检查文件更改了哪些提交。
git log path/to/file.txt
然后可以使用修订号检出文件。
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
之后,您可以提交并再次推送它。
sbtkgmzw4#
您可以使用以下工作流:
d7v8vwbk5#
将文件重置为正确的状态,提交,然后再次推送。
如果你确定没有其他人获取你的修改,你可以在提交时使用
--amend
来修改你之前的提交(即重写历史),然后推送。我认为你必须在推送时使用-f
选项来强制推送。9q78igpj6#
使用
git rm --cached /path/to/file
然后添加,提交和推送。就像上面的答案,但你需要使用--cached
而不是--cache
。oalqel3c7#
git log
git revert <hash_code_from_git_log>
git push
checkout 在ghrs。你可能会得到你所需要的,希望你这是有用的
r6l8ljro8#
我遵循了以下步骤[我经常遇到这种情况,尤其是在节点模块文件夹中]
1-git日志
2-git回复程式
用你承诺的号码换号码
将是像这样的长号码04409a858709c82fbf9eae7559d6ae9c34b6fbe6
3-git推送
这对我很有效,但请记住,这里有一个技巧,你的第一个提交将是列表中的最后一个,所以检查日期和提交信息。
check this image from my terminal