跟蹤取消:                                $ 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