我添加了一个名为"file1.txt"
git repo 的文件.从那以后,我犯了,增加了几个目录,名称dir1
和dir2
,并承诺他们混帐回购协议.
现在当前的回购有"file1.txt"
,dir1
和dir2
.
我怎样才能删除"file1.txt"
,而不会影响其他人一样dir1
和dir2
?
曾几何时,我的项目中有一个文件,我现在希望能够获得.
问题是:我不知道何时删除它以及它在哪条路径上.
如何存在此文件的提交?
我有一个带有n次提交的Git存储库.
我有一个我需要的文件,以前曾经在存储库中,我突然寻找并想"哦!那个文件去哪了?"
是否有(系列)Git命令会告诉我"在提交n-13时删除了文件really_needed.txt"?
换句话说,如果不查看每个单独的提交,并且知道我的Git repo对每个文件进行了每次更改,我是否可以快速找到该文件的最后一次提交,以便我可以将其恢复?
我删除了一些文件.
我还没有承诺.
我想重置我的工作区以恢复文件.
我做了一个git checkout .
.
但删除的文件仍然缺失.
并git status
显示:
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: cc.properties
# deleted: store/README
# deleted: store/cc.properties
#
Run Code Online (Sandbox Code Playgroud)
为什么不git checkout .
将工作区重置为HEAD
?
我知道git存储文件何时被删除的信息,我能够检查各个提交以查看哪些文件已被删除但是是否有一个命令可以在存储库的生命周期内生成每个已删除文件的列表?
我在这里看到了一个问题的答案,有助于在git中恢复已删除的文件.
解决方案是
git checkout <deleting_commit>^ -- <deleted_file_path>
Run Code Online (Sandbox Code Playgroud)
插入符(^
)的作用是什么?我在其他地方看到它在git中做了非常有用的事情.这很神奇.请有人为我破坏它并告诉我它的作用?
我想从我的git存储库的历史中恢复整个目录(递归).
只有一个分支(主).
我知道包含错误的提交.
我可以使用父提交的sha1哈希来恢复目录的状态,因为它是在包含错误之前的状态吗?
我想过这样的事情:
git checkout 348ce0aa02d3738e55ac9085080028b548e3d8d3 path/to/the/folder/
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我删除了文件夹中的所有内容,文件夹为空.我的远程仓库里还有一份副本.但是,当我做了一个git pull
它没有放回已删除的文件是不是应该这样做?
所以我做了一些研究,发现你可以通过这样做来恢复文件
git checkout <revision> -- <name of file>
但这只适用于文件.
如何检索目录中的所有文件?
我可以将参数传递给Git命令的别名吗?
我在Git配置中有一些别名,如下所示:
rb1 = rebase -i HEAD~1
rb2 = rebase -i HEAD~2
rb3 = rebase -i HEAD~3
rb4 = rebase -i HEAD~4
....
Run Code Online (Sandbox Code Playgroud)
是否可以制作rb
别名,以便git rb <x>
适用于任何<x>
?
我试过这个别名:
rb = rebase -i HEAD~
Run Code Online (Sandbox Code Playgroud)
但后来例如git rb 8
不起作用.