Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪些git命令将在不检查的情况下修改工作目录中的文件?_Git - Fatal编程技术网

哪些git命令将在不检查的情况下修改工作目录中的文件?

哪些git命令将在不检查的情况下修改工作目录中的文件?,git,Git,一些git命令是危险的,因为它们会破坏数据,而不可能恢复。将它们命名为“WD不安全命令”。我知道有两个WD不安全命令: reset --hard [commit] checkout (commit) [file] 是否有所有WD不安全命令的明确列表?我真的想避免这样的情况:我没有机会弄清楚将要做什么样的更改,哪些未跟踪的文件可能会受到影响。首先,你需要定期备份你的git存储库(实际上,任何重要的数据,特别是你的源代码,都应该备份;硬件出现故障,人们正在犯错). 一种流行的方法是经常git-pu

一些git命令是危险的,因为它们会破坏数据,而不可能恢复。将它们命名为“WD不安全命令”。我知道有两个WD不安全命令:

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