1. 程式人生 > 其它 >測試面經 | 從測試螺絲釘到大廠測試開發,三點成長心得和麵試經驗

測試面經 | 從測試螺絲釘到大廠測試開發,三點成長心得和麵試經驗

問題:上傳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 1.6.1 及更高版本還允許使用 git diff --staged,效果是相同的

忽略某些檔案 

$ cat .gitignore

*.[oa] *~

第一行告訴 Git 忽略所有以 .o 或 .a 結尾的檔案。一般這類物件檔案和存檔檔案都是編譯過程中出現的,我們用不著跟蹤它們的版本。第二行告訴 Git 忽略所有以波浪符(~)結尾的檔案,許多文字編輯軟體(比如 Emacs)都用這樣的檔名儲存副本。此外,你可能還需要忽略 logtmp 或者 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鍵退出