測試面經 | 從測試螺絲釘到大廠測試開發,三點成長心得和麵試經驗
問題:上傳txt檔案中文為亂碼,但是md檔案html 檔案都正常
解決:
嘗試一:
進入git安裝目錄找到etc檔案,按網上說的 etcgitconfig檔案未找到,etcgit-completion.bash檔案也未找到,etcinputrc到是有,不過還是放棄了此方案。
嘗試二:
不使用window的文字編輯器,使用其他編輯器,例如notepad++,atom等,問題解決。
問題: git客戶端ls顯示檔案列表為亂碼,對話方塊頭部中文顯示問號
解決:git輸入框右鍵-選擇options-選擇text-選擇character set 中的utf-8,apply,save
筆記
初次配置
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
在工作目錄中初始化新倉庫
$ git init
從現有倉庫克隆
$ git clone git://github.com/schacon/grit.git
如果想重新命名clone的倉庫
$ git clone git://github.com/schacon/grit.git mygrit
mygrit 就是本地倉庫的名字
檢視狀態 git status
檢視修改內容
git diff 此命令比較的是工作目錄中當前檔案和暫存區域快照之間的差異,也就是修改之後還沒有暫存起來的變化內容。
若要看已經暫存起來的檔案和上次提交時的快照之間的差異,可以用 git diff --cached
git diff --staged
,效果是相同的
忽略某些檔案
$ cat .gitignore
*.[oa] *~
第一行告訴 Git 忽略所有以 .o
或 .a
結尾的檔案。一般這類物件檔案和存檔檔案都是編譯過程中出現的,我們用不著跟蹤它們的版本。第二行告訴 Git 忽略所有以波浪符(~
)結尾的檔案,許多文字編輯軟體(比如 Emacs)都用這樣的檔名儲存副本。此外,你可能還需要忽略 log
,tmp
或者 pid
目錄,以及自動生成的文件等等。要養成一開始就設定好 .gitignore
檔案的習慣,以免將來誤提交這類無用的檔案。
檔案 .gitignore
- 所有空行或者以註釋符號
#
開頭的行都會被 Git 忽略。 - 可以使用標準的 glob 模式匹配。
- 匹配模式最後跟反斜槓(
/
)說明要忽略的是目錄。 - 要忽略指定模式以外的檔案或目錄,可以在模式前加上驚歎號(
!
)取反。
所謂的 glob 模式是指 shell 所使用的簡化了的正則表示式。星號(*
)匹配零個或多個任意字元;[abc]
匹配任何一個列在方括號中的字元(這個例子要麼匹配一個 a,要麼匹配一個 b,要麼匹配一個 c);問號(?
)只匹配一個任意字元;如果在方括號中使用短劃線分隔兩個字元,表示所有在這兩個字元範圍內的都可以匹配(比如 [0-9]
表示匹配所有 0 到 9 的數字)。
我們再看一個 .gitignore
檔案的例子:
# 此為註釋 – 將被 Git 忽略
# 忽略所有 .a 結尾的檔案
*.a
# 但 lib.a 除外
!lib.a
# 僅僅忽略專案根目錄下的 TODO 檔案,不包括 subdir/TODO
/TODO
# 忽略 build/ 目錄下的所有檔案
build/
# 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目錄下所有副檔名為 txt 的檔案
doc/**/*.txt
**
萬用字元從 Git 版本 1.8.2 以上已經可以使用。
提交更新 $ git commit
每次準備提交前,先用 git status
看下,是不是都已暫存起來了,然後再執行提交命令 git commit
: git commit -a 提交全部
刪除 $ rm grit.gemspec
檢視提交歷史 $ git log
$ git log -p -2 我們常用 -p
選項展開顯示每次提交的內容差異,用 -2
則僅顯示最近的兩次更新
$ git log -U1 --word-diff 單詞層面的對比
$ git log --stat 僅顯示簡要的增改行數統計
撤消操作
修改最後一次提交$ git commit --amend
遠端倉庫的使用
關聯一個遠端庫 git remote add origin git@server-name:path/repo-name.git
檢視當前的遠端庫 git remote
新增遠端倉庫 git remote
從遠端庫抓取資料 git fetch [remote-name] eg:git fetch origin 或 git pull
推送資料到遠端庫 git push [remote-name] [branch-name] git push origin master
修改本地的遠端庫
在新版 Git 中可以用 git remote rename
命令修改某個遠端倉庫在本地的簡稱,比如想把 pb
改成 paul
,可以這麼執行:
$ git remote rename pb paul
$ git remote
origin
paul
注意,對遠端倉庫的重新命名,也會使對應的分支名稱發生變化,原來的 pb/master
分支現在成了 paul/master
。
碰到遠端倉庫伺服器遷移,或者原來的克隆映象不再使用,又或者某個參與者不再貢獻程式碼,那麼需要移除對應的遠端倉庫,可以執行 git remote rm
命令
撤銷
git checkout -- readme.txt
- 把readme.txt檔案在工作區的修改全部撤銷,這裡有兩種情況:
- 一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
- 一種是readme.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
- 總之,就是讓這個檔案回到最近一次git commit或git add時的狀態
git reset HEAD file git reset命令既可以回退版本,也可以把暫存區的修改回退到工作區。當我們用HEAD時,表示最新的版本。
分支
檢視分支:git branch
建立分支:git branch <name>
切換分支:git checkout <name>
建立+切換分支:git checkout -b <name>
合併某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
git log --graph命令可以看到分支合併圖。 退出時按q鍵退出