使用git checkout覆盖文件不会警告丢失更改

时间:2015-12-25 17:21:53

标签: git git-checkout

我最近发现我可以覆盖跟踪远程分支中的文件,执行下一步:“git checkout origin / remoteBranchName nameFile.txt”。但我有一些问题:

  1. 如果未提交此文件中的更改,则执行该命令不会警告丢失更改,并且切换到其他分支时会执行此操作。为什么呢?

  2. 我尝试使用硬重置覆盖,但我认为你不能用一个文件来做。为什么呢?

  3. 由于

1 个答案:

答案 0 :(得分:1)

  

我尝试使用硬重置覆盖,但我认为你不能这样做   一个文件。为什么呢?

 $ git reset -- file.c 

根据https://git-scm.com/docs/git-reset

  

重置索引中的单个文件

     

假设您已经添加了一个文件   index,但后来决定你不想将它添加到你的提交中。您   可以在使用git保留更改的同时从索引中删除文件   复位。

     

$ git reset - frotz.c(1)

     

$ git commit -m“在索引中提交文件”(2)

     

$ git add frotz.c(3)

     
      
  1. 这会将文件从索引中删除,同时将其保留在工作目录中。
  2.   
  3. 这将提交索引中的所有其他更改。

  4.   
  5. 再次将文件添加到索引中。

  6.