1.初始化git倉庫(提前建立好的目錄)
git init
2.git配置
git config --global user.email "這裡寫你的郵箱"
git config --global user.name "這裡寫你的名字"
2.將乙個檔案新增到暫存區
git add filename
3.給暫存區的檔案建立乙個新版本(commit只給暫存區檔案建立新版本)
git commit -m "版本說明資訊"
4.檢視檔案狀態
git status
5.檢視提交日誌,版本建立日誌
git log
6.版本回退
git reset --hard 版本名 , 如
git reset --hard head^ 回退到上乙個版本,實際上是讓head指標指向上乙個版本
7.檢視操作記錄
git relog
8.丟棄工作區對某個檔案的修改
git checkout --檔名
9.把提交到暫存區的檔案撤回
git reset --hard 版本名 檔名 , 如
git reset --hard head code.cpp ,將已經提交到暫存區的code.cpp檔案撤出暫存區
10.將已經建立新版本的檔案撤出
1.版本回退
2.撤出暫存區
3.如果需要,丟失工作區對應檔案的修改
修改前的檔案內容:
同樣的,沒有出現±號的是檔案共有的;
-代表第乙個引數版本中所獨有的內容,這裡是指head版本
+代表第二個引數版本中所獨有的內容,這裡指的是head^版本
二、刪除檔案
1.使用rm刪除工作區的乙個檔案,可以使其恢復
檢視有哪些檔案:
king@ubuntu:~/mydir/test_git$ ls
code2.cpp code.cpp
刪除code2.cpp檔案:
king@ubuntu:~/mydir/test_git$ rm -f code2.cpp
檢視還有哪些檔案:
king@ubuntu:~/mydir/test_git$ ls
code.cpp
使用checkout撤銷工作區的操作,這裡是恢復刪除的檔案:
king@ubuntu:~/mydir/test_git$ git checkout -- code2.cpp
檢視有哪些檔案:
king@ubuntu:~/mydir/test_git$ ls
code2.cpp code.cpp
king@ubuntu:~/mydir/test_git$
2.確實要刪除乙個檔案,將刪除檔案的改動放到暫存區中,然後建立新的版本記錄
1.刪除檔案:
rm filename
2.將刪除檔案操作記錄在暫存區:
git rm filename
3.並且將刪除檔案的操作建立乙個新的版本記錄:
git commit -m "刪除了filename"
3.無法恢復刪除檔案的一種情況
touch main.cpp
rm main.cpp
此時,我們新建立的檔案main.cpp並沒有被git跟蹤,所以沒法利用git恢復
這能通過掃瞄硬碟來恢復;
正確做法,我們建立的新檔案應該先add到暫存區,使git幫我們跟蹤管理更安全。
假如誤刪了乙個檔案,我們可以參考第二篇文章版本的恢復操作。
總結:
1.如果只進行了第一步,我們通過git checkout 來恢復工作區檔案;
2.如果我們已經進行到了第二步,我們通過一下操作:
3.如果我們已經對刪除操作建立了新的版本,進行一下的操作恢復檔案:
刪除檔案並且建立新的版本:
(三)對極幾何
對極約束理解 1.對於有重疊紋理的兩幀影象,通過特徵點匹配可以找到一些匹配對,這是對極幾何約束的基礎 2.匹配對是由同一空間點在不同畫素平面投影得到的不同畫素座標,以參考幀為基礎,假設空間點為 p 參考幀投影畫素為 p 當前幀投影畫素為 p 由於空間點 p 深度值不確定,因此其可能在參考幀光心 o ...
三對老虎過河問題
abc三隻母老虎,孩子分別為abc三隻小老虎,已知abca都會划船,bc不會。每次過河船上最多坐兩隻老虎,可兩大或兩小或一大一小一起過。但一大一小老虎在一起時,如果不是母子關係,那麼小老虎會被吃掉,請設計乙個合理的過河方案。ab過,abcc ab a回,aabcc b ac過,abc abc a回,...
Linux curses 總結三(對鍵盤的操作)
cbreak cooked 預處理模式 curses程式的控制模式函式 curses程式的鍵盤操作函式 小栗子curses程式的鍵盤操作是對底層的簡單封裝介面 cooked 標準輸入模式,處理的是一行資料,每次遇到 r 換行符 才會把輸入到快取的資料傳遞給程式,這種情況下鍵盤輸入特殊字元可以被處理 ...