Max Coding blog

GIT

2023/04/05

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

1
$ git rm file --cached

這麼一來原本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

1
$ git blame filename

若要指定行數則可以加入-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
## or
$ git checkout . ## 救回所有檔案

更改commit資訊

更改上一次的commit資訊

1
$ git commit --amend -m "New Info"

更改更早之前的commit資訊

刪除在.gitignore裡的檔案

-f是強制刪除的意思

1
$ git clean -fX

Show Git configuration

這樣寫的話會顯示global的configuration,又或者查看~/.gitconfig

1
$ git config --global --list
如果想要顯示local的configuration則輸入
1
$ git config --local --list
或者查看該repository的.git/config檔案也可以顯示local的configuration

拆掉commit並重做

1
$ git reset hash^

這邊的hash代表我們commit的SHA-1值,而^代表前一次,所以如果要拆掉前兩次的commit,可以輸入:

1
$ git reset hash^^
如果要前五次的話,可以使用~,如:
1
$ git reset hash~5
### Argument
1
2
3
$ --mixed ## remove from staging area, but still stored at the directory
$ --soft ## still stored at the staging area
$ --hard ## removed from both staging area and directory

查看紀錄

用Reflog看我們的紀錄

1
$ git reflog

1
$ git log -g ## 加入-g也代表Reflog

藉由我們看到的紀錄,可以再使用reset回到我們之前的操作。

Reference

  1. 為你自己學Git
CATALOG
  1. 1. Git
    1. 1.1. 修改已經存在Repository的檔案同時Add和Commit
    2. 1.2. 尋找某人的commit
    3. 1.3. 尋找某個commit訊息
    4. 1.4. 尋找某個內容
    5. 1.5. 刪除檔案
    6. 1.6. 使檔案Untracked
    7. 1.7. 更改檔案名稱
    8. 1.8. 查看是誰寫的code
    9. 1.9. 誤刪檔案 救回辦法
    10. 1.10. 更改commit資訊
      1. 1.10.1. 更改上一次的commit資訊
      2. 1.10.2. 更改更早之前的commit資訊
    11. 1.11. 刪除在.gitignore裡的檔案
    12. 1.12. Show Git configuration
    13. 1.13. 拆掉commit並重做
    14. 1.14. 查看紀錄
    15. 1.15. Reference