跟蹤取消:                                $ git rm --cached x.txt
 
跟蹤取消的含義是,把文件從git中拿出來(lái),不再進(jìn)行版本跟蹤,但保留工作區(qū)的文件。操作前,如果:
 
 
       1)該文件處于已提交狀態(tài),則此操作把該文件置成“未跟蹤”狀態(tài),同時(shí),隱性的執(zhí)行了該文件的需要提交刪除操作。再執(zhí)行 git commit -m "...", 該文件徹底從 repository 中刪除。       此命令能執(zhí)行是因?yàn)?#8220;已暫存”與“已提交”一致。
 
       2)該文件處于“已提交”狀態(tài)之后的“已修改”。則此操作把該文件置成“未跟蹤”狀態(tài),同時(shí),隱性的執(zhí)行了該文件的需要提交刪除操作。再執(zhí)行 git commit -m "...", 該文件徹底從 repository 中刪除。而且,已經(jīng)修改的文件保留,不會(huì)丟失。此命令能執(zhí)行是因?yàn)?#8220;已暫存”與“已提交”一致。
 
       3)該文件處于“已暫存”狀態(tài)之后未修改。則此操作把該文件置成“未跟蹤”狀態(tài),同時(shí),隱性的執(zhí)行了該文件的需要提交刪除操作。再執(zhí)行 git commit -m "...", 該文件徹底從 repository 中刪除。此命令能執(zhí)行是因?yàn)?#8220;已提交”與“已修改”一致。
 
 
       4)該文件處于“已暫存”狀態(tài)之后的“已修改”。         此命令不能執(zhí)行,因?yàn)?#8220;已暫存”既與“已提交”不一致,也與“已修改”不一致,造成信息丟失的風(fēng)險(xiǎn),因此,對(duì)用戶進(jìn)行風(fēng)險(xiǎn)提示。如果強(qiáng)行刪除,則需要加 -f , 即, git rm -f --cached a.txt。 結(jié)果是, 把該文件置成“未跟蹤”狀態(tài),同時(shí),隱性的執(zhí)行了該文件的需要提交刪除操作。再執(zhí)行 git commit -m "...", 該文件徹底從 repository 中刪除。此命令丟失原“已暫存”信息。
 
 
      注意:git rm -f --cached a.txt  與 git rm -f a.txt 之間的區(qū)別: 前者保留工作區(qū)的文件,后者是全部刪除。
 
補(bǔ)充提交:                                $ git commit --amend
說(shuō)明: 如果上次提交之后沒(méi)有Stage新的文件,則這次補(bǔ)充提交只更新提交說(shuō)明。
       如果有重新stage的文件,則這次提交把該文件加入到上次提交,即,本次補(bǔ)充和上次提交合并成一個(gè)。
暫存取消:                                $ git reset HEAD benchmarks.rb
注意:如果一個(gè)文件已經(jīng)暫存了一個(gè)版本,后來(lái)又暫存了一個(gè)更新的版本,然后用git reset HEAD 取消后暫存的版本,則第一次暫存的本版不會(huì)恢復(fù)。
修改取消:                                $ git checkout -- benchmarks.rb
注意:如果已暫存之后沒(méi)提交,進(jìn)行了修改,這個(gè)修改取消,使用已暫存來(lái)覆蓋,而不是已提交的;如果該已暫存已提交,則使用已提交覆蓋。也就是說(shuō),要想徹底的用已提交的版本覆蓋本地修改,則要查看該文件是否有已暫存,如果有,要用上一個(gè)命令先把它清除。
注意:修改取消后,無(wú)法恢復(fù)。
總之,只要提交的東西,總能想法設(shè)法找回來(lái),但沒(méi)提交的東西,一旦被覆蓋,就有可能永久丟失。
[遠(yuǎn)程操作]
顯示配置了哪些遠(yuǎn)程服務(wù)器:                      $ git remote                                     
顯示配置了哪些遠(yuǎn)程服務(wù)器,同時(shí)顯示URL:         $ git remote -v             
顯示遠(yuǎn)程 詳細(xì)信息:                             $ git remote show origin
修改遠(yuǎn)程標(biāo)識(shí)名字:                              $ git remote rename pb paul
刪除遠(yuǎn)程配置:                                  $ git remote rm paul
增加一個(gè)遠(yuǎn)程配置:                   $ git remote add pb git://github.com/paulboone/ticgit.git 
獲取:                              $ git fetch pb
或者:                               $ git fetch origin
注意:
1)該分支可以用 pb/master 訪問(wèn)
2)獲取到本地之后,并未自動(dòng)merge,也未改變本地任何東西。
推送:                               $ git push origin master
注意,推送的條件:
1)從該遠(yuǎn)程克隆;
2)有寫權(quán)限;
3)從上次克隆(或推送)至今沒(méi)有更新,如果有更新,則你要先 fetch 然后再push。
標(biāo)簽操作:
查看所有標(biāo)簽:                               $ git tag
注意:標(biāo)簽顯示的順序無(wú)太多含義。
查看特定標(biāo)簽:                               $ git tag -l 'v1.4.2.*'
打新標(biāo)簽:                                   $ git tag -a v1.4 -m 'my version 1.4'
顯示某個(gè)標(biāo)簽:                               $ git show v1.4
簽署標(biāo)簽:                                   $ git tag -s v1.5 -m 'my signed 1.5 tag'
輕量級(jí)標(biāo)簽:                                 $ git tag v1.6
驗(yàn)證標(biāo)簽:                                   $ git tag -v v1.4.2.1
后期加注標(biāo)簽:                               $ git log --pretty=oneline
                                             $ git tag -a v1.2 9fceb02
分享(推送)標(biāo)簽:                           $ git push origin v1.5
分享(推送)所有標(biāo)簽:                       $ git push origin --tags