跟踪取消:                                $ git rm --cached x.txt
 
跟踪取消的含义是,把文件从git中拿出来,不再进行版本跟踪,但保留工作区的文件。操作前,如果:
 
 
       1)该文件处于已提交状态,则此操作把该文件置成“未跟踪”状态,同时,隐性的执行了该文件的需要提交删除操作。再执行 git commit -m "...", 该文件彻底从 repository 中删除。       此命令能执行是因为“已暂存”与“已提交”一致。
 
       2)该文件处于“已提交”状态之后的“已修改”。则此操作把该文件置成“未跟踪”状态,同时,隐性的执行了该文件的需要提交删除操作。再执行 git commit -m "...", 该文件彻底从 repository 中删除。而且,已经修改的文件保留,不会丢失。此命令能执行是因为“已暂存”与“已提交”一致。
 
       3)该文件处于“已暂存”状态之后未修改。则此操作把该文件置成“未跟踪”状态,同时,隐性的执行了该文件的需要提交删除操作。再执行 git commit -m "...", 该文件彻底从 repository 中删除。此命令能执行是因为“已提交”与“已修改”一致。
 
 
       4)该文件处于“已暂存”状态之后的“已修改”。         此命令不能执行,因为“已暂存”既与“已提交”不一致,也与“已修改”不一致,造成信息丢失的风险,因此,对用户进行风险提示。如果强行删除,则需要加 -f , 即, git rm -f --cached a.txt。 结果是, 把该文件置成“未跟踪”状态,同时,隐性的执行了该文件的需要提交删除操作。再执行 git commit -m "...", 该文件彻底从 repository 中删除。此命令丢失原“已暂存”信息。
 
 
      注意:git rm -f --cached a.txt  与 git rm -f a.txt 之间的区别: 前者保留工作区的文件,后者是全部删除。
 
补充提交:                                $ git commit --amend
说明: 如果上次提交之后没有Stage新的文件,则这次补充提交只更新提交说明。
       如果有重新stage的文件,则这次提交把该文件加入到上次提交,即,本次补充和上次提交合并成一个。
暂存取消:                                $ git reset HEAD benchmarks.rb
注意:如果一个文件已经暂存了一个版本,后来又暂存了一个更新的版本,然后用git reset HEAD 取消后暂存的版本,则第一次暂存的本版不会恢复。
修改取消:                                $ git checkout -- benchmarks.rb
注意:如果已暂存之后没提交,进行了修改,这个修改取消,使用已暂存来覆盖,而不是已提交的;如果该已暂存已提交,则使用已提交覆盖。也就是说,要想彻底的用已提交的版本覆盖本地修改,则要查看该文件是否有已暂存,如果有,要用上一个命令先把它清除。
注意:修改取消后,无法恢复。
总之,只要提交的东西,总能想法设法找回来,但没提交的东西,一旦被覆盖,就有可能永久丢失。
[远程操作]
显示配置了哪些远程服务器:                      $ git remote                                     
显示配置了哪些远程服务器,同时显示URL:         $ git remote -v             
显示远程 详细信息:                             $ git remote show origin
修改远程标识名字:                              $ git remote rename pb paul
删除远程配置:                                  $ git remote rm paul
增加一个远程配置:                   $ git remote add pb git://github.com/paulboone/ticgit.git 
获取:                              $ git fetch pb
或者:                               $ git fetch origin
注意:
1)该分支可以用 pb/master 访问
2)获取到本地之后,并未自动merge,也未改变本地任何东西。
推送:                               $ git push origin master
注意,推送的条件:
1)从该远程克隆;
2)有写权限;
3)从上次克隆(或推送)至今没有更新,如果有更新,则你要先 fetch 然后再push。
标签操作:
查看所有标签:                               $ git tag
注意:标签显示的顺序无太多含义。
查看特定标签:                               $ git tag -l 'v1.4.2.*'
打新标签:                                   $ git tag -a v1.4 -m 'my version 1.4'
显示某个标签:                               $ git show v1.4
签署标签:                                   $ git tag -s v1.5 -m 'my signed 1.5 tag'
轻量级标签:                                 $ git tag v1.6
验证标签:                                   $ git tag -v v1.4.2.1
后期加注标签:                               $ git log --pretty=oneline
                                             $ git tag -a v1.2 9fceb02
分享(推送)标签:                           $ git push origin v1.5
分享(推送)所有标签:                       $ git push origin --tags