Git使用失誤,導致刪除項目的經歷

記一次Git使用失誤,導致刪除項目的經歷。

 

1.在NS/下建立.gitignore文件,初識git:git init

gitignore:

#just track scratch/duola_dos.cc and ...dos.cc/ .h

/*

!.gitignore

!scratch/duola_dos.cc

!src/aqua-sim-ng/model/aqua-sim-routing-ddos.cc

!src/aqua-sim-ng/model/aqua-sim-routing-ddos.h

2.add .  只添加了ignore,覺得不對勁,就把ignore重新寫了一遍。然後add .發現等了好久,覺得奇怪,git status, 發現add了好多文件,原來是把src都忽略了。想清理add

 

gitignore:

#just track scratch/duola_dos.cc and ...dos.cc/ .h

/*

!.gitignore

!scratch/duola_dos.cc

!/src/

!/src/aqua-sim-ng/model/

!/src/aqua-sim-ng/model/

!/src/aqua-sim-ng/model/aqua-sim-routing-ddos.cc

!/src/aqua-sim-ng/model/aqua-sim-routing-ddos.h

 

3 查了一下,用reset就行。我就reset到唯一的HEAD: init了。然後發現src/下所有文件都沒了,rm了。直接懵逼。

 

問題分析:

我回到init狀態,本來是想完整的回去,可是沒想到人家是按照ignore來的。開始src/那些文件都是被忽略的,但是把ignore改了,再reset的時候,git會根據新的規則去定。新的ignore把/src下所有文件track了。那麼以前/src裏面啥都沒有,現在多了這麼多track的文件,只好rm掉了。

 

經驗:

  1. 對於gitignore文件,千萬要慎重!!!!
  2. 對於add到緩存區的文件,千萬要慎重,如果從沒commit過,那麼一旦清除,就相當於rm了。
  3. 正確的gitignore忽略寫法:
    1. 如果文件少,直接add -f,強制添加忽略的文件,只要添加一次就能保持track
    2. !/src/,然後要緊跟着/src/*
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章