Git文件管理和索引add、rm 、commit、mv命令

1.Git中的文件分类

Git将文件分为三类:已追踪的、被忽略的以及未追踪的

  1. 已追踪的(Tracked)
    已追踪的文件是指已经在版本库中的文件或者是已经暂存到索引中的文件,如果想要将新文件somefile添加为已追踪的文件,执行git add somefile 命令。
  2. 被忽略的(Ignored)
    被忽略的文件必须在版本库中被明确声明为不可见或被忽略,即使它可能会在你的工作目录中出现。一个软件项目通常都会有很多被忽略的文件。Git维护一个默认忽略文件列表,
  3. 未追踪的(Untracked)
    未追踪的文件是指那些不在前两类中的文件。Git把工作目录下的所有文件当成一个集合,减去已追踪的文件和被忽略的文件,剩下的部分作为未追踪的文件。如果想让Git忽略某一个文件可以使用echo main.o > .gitignore 命令。

2. git add命令

git add命令将暂存一个文件,如果一个文件是未追踪的,那么git add就会将文件的状态转化为已追踪的,另外如果git add 作用于一个目录名,那么该目录下的文件和子目录都会递归暂存起来。在任何编辑之后,提交变更之前,都要先执行git add命令,更加形象的来说,我们与其把git add看成添加这个文件,不如看成添加这个内容,因为当我们 第一次执行git add 命令的时候,相当于开始追踪这个文件,此时这个文件有一个最初的SHA1值,当我们更改里面的内容以后,再次使用git add命令以后,使用git hash-object filename 会发现它的SHA1值已经发生了变化。**最后在任何情况下要记住,工作目录下的文件版本和索引中暂存的文件版本可能是不同步的,当提交的时候,Git会使用索引中的文件版本。**

3. git commit命令的注意事项

1.使用 git commit –all
git commit 的-a 或者-all选项会导致执行提交之前自动暂存所有未暂存的和未追踪的文件变化,包括从工作副本中删除已追踪的文件。但是如果我们创建一个版本库,在里面添加了文件,并修改以后,不使用git add命令,然后我们在版本库下再创建一个目录subdir,然后在目录里添加一个文件,这个时候我们执行git commit --all 命令(这里不要忘记添加提交信息),并不会将subdir目录下的文件提交到版本库里,这一点我并不是特别理解,反正Git 版本控制管理这本书上是这么说的,可能是翻译的问题吧,也可能是我还不是特别理解这个命令吧,此处应该有一个捂脸的表情!哈哈

4.git rm命令

1.使用git rm
Git可以从索引或者同时从索引和工作目录中删除一个文件,也就是说它对没有添加到版本库或索引中的文件是不起作用的。Git不会只从工作目录中删除一个文件,普通的rm命令可用于这一目的。另外从工作目录和索引中删除一个文件,并不会删除该文件在版本库中的历史记录。文件的任何版本,只要是提交到版本库的历史记录的一部分,就会留在对象库里并保存历史记录。
2. git rm –cached命令
git rm --cached命令可以将一个文件由已暂存的状态转换为未暂存的,如git rm --cached filename,该命令会删除索引中的文件并将它保存到工作目录中,而git rm则会将文件从索引和工作目录中都删除,但是这个文件是处于已提交状态的
3. git mv命令
git mv命令用于重命名或移动文件,例如在版本库里有一个stuff文件,我想将其重命名为newstuff 可以通过以下两种方法:

mv stuff newstuff
git rm stuff
git add newstuff

或者

git mv stuff newstuff

无论是用哪种方法,Git都会在索引中删除stuff的路径名,并添加newstuff的路径名,至于stuff的原始内容,则仍保留在对象库中,然后才会将它与newstuff重新关联。而且使用git log 命令可以查看这个文件的历史记录,比如这里使用 git log mynotyet,就会出现如下图所示的界面:
git log
但是这个命令只显示了关于mynotyet的记录,并没有显示关于该文件的全部记录,可以加上--follow选项,就可以查看关于这个文件的全部历史纪录。 git log --follow mynotyet
git log 添加follow选项
4、*.gitignore文件
如果想忽略一个文件可以将文件名加入道同一目录下的.gitignore中即可,也可以通过将文件名添加到该版本库顶层目录下的.gitignore文件中来忽略它

猜你喜欢

转载自blog.csdn.net/dream_follower/article/details/80699241