Git 如何只提交一些新文件而忽略修改的文件?
使用Git 如何只提交一些新文件而忽略修改的文件?,git,github,Git,Github,使用git我只想将一些新添加的文件提交到repo中,而忽略一些修改过的文件(被病毒感染) 我该怎么做 我想将这些文件保存在repo中,我只是不想提交损坏的文件 我试过了 git添加我的新文件 我也能做到 git-rm\u已更新\u文件\u未\u添加\u 但是这些文件将从repo中删除,我想保留旧版本 也许我可以添加我想添加的文件并保存其余的文件?要将你想添加的文件添加到远程,请按照你所说的使用命令 git添加我的新文件 在提交和推送之后,这应该是您所要做的全部 如果您最终在提交中添加了错误的文件
git
我只想将一些新添加的文件提交到repo中,而忽略一些修改过的文件(被病毒感染)
我该怎么做
我想将这些文件保存在repo中,我只是不想提交损坏的文件
我试过了
git添加我的新文件
我也能做到
git-rm\u已更新\u文件\u未\u添加\u
但是这些文件将从repo中删除,我想保留旧版本
也许我可以添加我想添加的文件并保存其余的文件?要将你想添加的文件添加到远程,请按照你所说的使用命令
git添加我的新文件
在提交和推送之后,这应该是您所要做的全部
如果您最终在提交中添加了错误的文件,例如\u updated\u files\u not\u to\u add\u
,则可以在使用以下命令按下之前将其从提交中删除:
git reset\u updated\u files\u not\u to\u add\u
要将要添加的文件添加到远程,请按您所说的使用命令
git添加我的新文件
在提交和推送之后,这应该是您所要做的全部
如果您最终在提交中添加了错误的文件,例如\u updated\u files\u not\u to\u add\u
,则可以在使用以下命令按下之前将其从提交中删除:
git reset\u updated\u files\u not\u to\u add
我在命令行上执行大多数git操作,但我发现使用标准gui进行文件暂存和提交要容易得多
在linux、osx或git bash中,键入git gui&
。如果它没有出现,您需要安装它。如果您使用的是mac,我认为git的brew
版本附带gui,但github版本没有。(不确定)
这使您可以可视化哪些文件被暂存,甚至可以非常轻松地暂存文件行
您甚至可以在gui中暂存文件,然后在命令行上键入
git status
,查看文件是否已暂存。我在命令行上执行大多数git操作,但我发现使用标准gui暂存文件和提交要容易得多
在linux、osx或git bash中,键入git gui&
。如果它没有出现,您需要安装它。如果您使用的是mac,我认为git的brew
版本附带gui,但github版本没有。(不确定)
这使您可以可视化哪些文件被暂存,甚至可以非常轻松地暂存文件行
您甚至可以在gui中暂存一个文件,然后在命令行上键入git status
,查看该文件是否已暂存。要添加一点,请注意git commit
从git的索引而不是从工作树获取提交内容。(索引也称为暂存区,有时也称为缓存。)当运行git add file
时,git会将给定文件的内容从工作树复制到索引中
如果某些工作树文件已损坏,但索引版本完好无损,则可以简单地避免在工作树文件上运行git add
。索引版本保持不变,git commit
将使用它们
如果索引版本也已损坏,但HEAD
版本完好无损,您可以指示Git使用Git reset
将HEAD
版本复制到索引中,如Ron所示:Git reset file
将索引视为位于当前(HEAD
)提交和工作树之间,因为它确实:
HEAD commit index work-tree
----------- --------- ---------
README.md README.md README.md
file.ext file.ext file.ext
从工作树复制到索引的操作是git add
,从commit复制到索引的操作是git reset
(根据定义,任何提交的文件都是只读的,因此没有从索引复制到提交的操作。当然,您可以使用git commit
将索引转换为提交来进行新的提交,它将成为您的HEAD
commit。)
还可以使用命令的git checkout commit--file
格式中的git checkout
从任何提交复制到工作树。但是,请注意,当您执行此操作时,git checkout
首先将文件从给定提交复制到索引,然后从索引复制到工作树,因此这种复制将同时替换索引和工作树版本。要补充一点,请注意git commit
从git的索引获取提交内容,不是从工作树上。(索引也称为暂存区,有时也称为缓存。)当运行git add file
时,git会将给定文件的内容从工作树复制到索引中
如果某些工作树文件已损坏,但索引版本完好无损,则可以简单地避免在工作树文件上运行git add
。索引版本保持不变,git commit
将使用它们
如果索引版本也已损坏,但HEAD
版本完好无损,您可以指示Git使用Git reset
将HEAD
版本复制到索引中,如Ron所示:Git reset file
将索引视为位于当前(HEAD
)提交和工作树之间,因为它确实:
HEAD commit index work-tree
----------- --------- ---------
README.md README.md README.md
file.ext file.ext file.ext
从工作树复制到索引的操作是git add
,从commit复制到索引的操作是git reset
(根据定义,任何提交的文件都是只读的,因此没有从索引复制到提交的操作。当然,您可以使用git commit
将索引转换为提交来进行新的提交,它将成为您的HEAD
commit。)
还可以使用git checkout commit--file中的git checkout
从任何提交复制到工作树