哪些git命令将在不检查的情况下修改工作目录中的文件?
一些git命令是危险的,因为它们会破坏数据,而不可能恢复。将它们命名为“WD不安全命令”。我知道有两个WD不安全命令:哪些git命令将在不检查的情况下修改工作目录中的文件?,git,Git,一些git命令是危险的,因为它们会破坏数据,而不可能恢复。将它们命名为“WD不安全命令”。我知道有两个WD不安全命令: reset --hard [commit] checkout (commit) [file] 是否有所有WD不安全命令的明确列表?我真的想避免这样的情况:我没有机会弄清楚将要做什么样的更改,哪些未跟踪的文件可能会受到影响。首先,你需要定期备份你的git存储库(实际上,任何重要的数据,特别是你的源代码,都应该备份;硬件出现故障,人们正在犯错). 一种流行的方法是经常git-pu
reset --hard [commit]
checkout (commit) [file]
是否有所有WD不安全命令的明确列表?我真的想避免这样的情况:我没有机会弄清楚将要做什么样的更改,哪些未跟踪的文件可能会受到影响。首先,你需要定期备份你的git存储库(实际上,任何重要的数据,特别是你的源代码,都应该备份;硬件出现故障,人们正在犯错). 一种流行的方法是经常
git-push--all
到某个外部存储库,例如on
但是,如果你训练自己——你真的应该——经常git提交
和git推送
(例如,通常在最多每一个小时的开发之后,或者在修复一个bug或添加一个小功能时),你实际上不会丢失太多数据。在任何提交之后,您都可以返回到任何状态(这是git
最强大的功能)。因此,在最坏的情况下,您在最后一次提交(&push)后会丢失所有内容,这并不是什么大问题,因为您习惯于频繁地git提交
(&git-push
)
如果没有网络连接,仍然经常进行git提交
,但要在网络上将git推送到远程存储库中,以便进行备份(至少每天一次)
实际上,git签出
会覆盖任何未提交的文件(注意术语:对于subversion,svn签出
并没有做类似的事情:svn签出
&git签出
命令看起来很相似,但非常不同)
重要的是经常进行git提交(和git推送)(这是你的责任)。当然可以使用git分支
经常使用git status
命令。在.gitignore
中忽略的文件要小心(应该使用git
管理这些文件)。偶尔(也许是每周,当然在任何重要的软件发布之前),不妨考虑<代码> Git克隆< /代码>——在你的储存库中(在一些新目录中),在克隆的存储库中构建你的软件,以确保所需要的一切都在那里。
我想在意外失去任何重要的东西之前知道这些
因此,如果您经常git commit
(&push
),就不会丢失任何重要数据。最多您将丢失自上次提交以来所做的一切。没什么大不了的。当然,您永远不应该“手动”触摸用于git存储库的.git/
隐藏目录。而且你应该每天git推送
到某个远程存储库,特别是为了避免在硬件损坏时丢失工作(例如,如果你的笔记本电脑掉落或烧坏或被盗)
不要指望软件系统来决定何时应该git提交
。这是你的责任,你应该经常这样做(但在适当的时候)。关于git
的好处是git提交
确实非常便宜和快速。所以你应该经常使用它。首先,你需要定期备份你的git存储库(实际上,任何重要的数据——特别是你的源代码——都应该备份;硬件出了故障,人们都在犯错)。一种流行的方法是经常git-push--all
到某个外部存储库,例如on
但是,如果你训练自己——你真的应该——经常git提交
和git推送
(例如,通常在最多每一个小时的开发之后,或者在修复一个bug或添加一个小功能时),你实际上不会丢失太多数据。在任何提交之后,您都可以返回到任何状态(这是git
最强大的功能)。因此,在最坏的情况下,您在最后一次提交(&push)后会丢失所有内容,这并不是什么大问题,因为您习惯于频繁地git提交
(&git-push
)
如果没有网络连接,仍然经常进行git提交
,但要在网络上将git推送到远程存储库中,以便进行备份(至少每天一次)
实际上,git签出
会覆盖任何未提交的文件(注意术语:对于subversion,svn签出
并没有做类似的事情:svn签出
&git签出
命令看起来很相似,但非常不同)
重要的是经常进行git提交(和git推送)(这是你的责任)。当然可以使用git分支
经常使用git status
命令。在.gitignore
中忽略的文件要小心(应该使用git
管理这些文件)。偶尔(也许是每周,当然在任何重要的软件发布之前),不妨考虑<代码> Git克隆< /代码>——在你的储存库中(在一些新目录中),在克隆的存储库中构建你的软件,以确保所需要的一切都在那里。
我想在意外失去任何重要的东西之前知道这些
因此,如果您经常git commit
(&push
),就不会丢失任何重要数据。最多您将丢失自上次提交以来所做的一切。没什么大不了的。当然,您永远不应该“手动”触摸用于git存储库的.git/
隐藏目录。而且,您应该每天将git推送到某个远程存储库,尤其是避免在硬件损坏时丢失您的工作(例如,如果您的la掉落或烧坏或被盗)
git commit --amend
git rebase # And pretty much any argument or subcommand to it.
$ git log --oneline
c5526a4 One Single Change
$ git log --oneline
5563dba ...And Another Part
c5526a4 Crap, Forgot a Part
a5c809b One Single Change