Git
修改已經存在Repository的檔案同時Add和Commit
1 $ git commit -a -m "update"
這樣的操作會將已經在Repository的檔案同時Add和Commit,但是不會把Untracked
files加入。
尋找某人的commit
1 $ git log --oneline --author="name"
尋找某個commit訊息
1 $ git log --oneline --grep="message"
尋找某個內容
1 $ git log -S "condition"
刪除檔案
1 2 3 $ rm file$ git add file $ git commit -m "del"
或者直接使用$ git rm
1 2 $ git rm file $ git commit -m "del"
這麼一來就不用再$ git add
了。
使檔案Untracked
這麼一來原本tracked的檔案就會變成Untracked了。
更改檔案名稱
1 2 $ mv file_old file_new$ git add .
這樣的操作會變成刪除file_old,然後新增file_new,經過add之後才會變成renamed。
1 $ git mv file_old file_new
這麼一來檔案會直接變成renamed。
查看是誰寫的code
若要指定行數則可以加入-L
參數 1 $ git blame -L 5,10 filename
## 別名Alias
1 2 $ git config --global alias.st status $ git config --global alias.og "log --oneline --graph"
如果要刪掉alias可以使用 1 2 $ git config --global --unset alias.st $ git config --global --unset alias.og
誤刪檔案 救回辦法
1 2 3 $ git checkout filename # $ git checkout .
更改commit資訊
更改上一次的commit資訊
1 $ git commit --amend -m "New Info"
更改更早之前的commit資訊
刪除在.gitignore裡的檔案
-f是強制刪除的意思
Show Git configuration
這樣寫的話會顯示global的configuration,又或者查看~/.gitconfig
1 $ git config --global --list
如果想要顯示local的configuration則輸入 1 $ git config --local --list
或者查看該repository的.git/config
檔案也可以顯示local的configuration
拆掉commit並重做
這邊的hash代表我們commit的SHA-1值,而^
代表前一次,所以如果要拆掉前兩次的commit,可以輸入:
如果要前五次的話,可以使用~
,如:
### Argument 1 2 3 $ --mixed $ --soft $ --hard
查看紀錄
用Reflog看我們的紀錄
藉由我們看到的紀錄,可以再使用reset回到我們之前的操作。
Reference
為你自己學Git