Git - 常用指令 : git add, git commit, git push, git status, git log, git show
- git add
- 將選擇的檔案先加入到 staging area
- git add test_file.c
- git add ../../test_file.h
- 直接將修改過的現有檔案加入到 staging area, 後來新增加的檔案不加入
- git add -u
- 說明 :
如果修改的檔案數量很多時, 雖然用 -u 比較快,
但還是比較建議一個一個檔案加入到 staging area
- git commit
- 將已經加入到 staging area 的檔案, 放到 git directory
- 跳過 git add 的步驟, 直接 git commit
- 修改已經 commit 的 “說明” 部分
- git push
- 將已經 commit 的檔案 push 到遠端的 server
- git push
- 說明 :
git push 後如果出現下面的error 訊息,
error: failed to push some refs to 'ssh://git@sw.test.com.tw/project/code.git'
表示有人跟你改到同一個檔案, 而且比你早放到 remote 端的 server,
所以在你要 push 程式的時候, 跟 server 的程式發生衝突
- git status
- 查看檔案的狀態, 狀態有分三種
- git status
- [1] 檔案是已經被修改過且做過 git add
Changes to be committed: (將要提交的檔案)
(use "git reset HEAD <file>..." to unstage)
modified : add.c
- [2] 檔案是已經被修改過但是還沒 git add
Changes not staged for commit: (更動過但未提交的檔案)
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified : not_add.c
- [3] 檔案是新增加的而且還沒 git add
Untracked files: (未被追蹤的檔案)
(use "git add <file>..." to include in what will be committed)
new_file.c
- 只查看 [1] [2] 兩種狀態的檔案
- git status -uno
- 因爲開發大型的專案, 有時候重新 build code 之後,
用 git status 顯示檔案的狀態, 會出現非常多的檔案,
會不方便確認修改過的檔案是否做過 git add,
所以會用在 git status 後面加上 -uno,
但是要特別注意的是, 如果是新增加的檔案,
用 git status -uno 不會顯示出來
- 最後一行會顯示下列的訊息
Untracked files not listed (use -u option to show untracked files)
- git log
- 查看 commit 記錄
- git log --stat
- 說明:
commit 記錄包含 : commit hash 號碼, 作者, 日期時間, commit 的訊息
- 查看更動的檔案和行數
- 查看特定作者的所有 commit
- git log --author=kai-yuan
- 查看 commit 記錄並加上 grep 功能
- git log | grep "ieee80211"
- 查看特定檔案所有修改過的記錄
- git log -p code.c
但這樣的方式會比較不好找比較之前的記錄,
可以使用下面的方式將結果轉成 txt 文字檔後,
再搜尋想要找的關鍵字
git log -p code.c > code.c_test.txt
- git show
- 顯示最新的 commit 修改內容
- 顯示特定的 commit 修改內容
- git show commit_hash_number
- 說明 :
ex : git show 123456,
不一定要完整的 commit hash 號碼, 只要前 6 碼就可以
- 圖片說明 :
Working directory : 目前工作的目錄
Staging area : 暫存檔案準備遞交的區域
git directory (Repository) : 儲存庫
沒有留言:
張貼留言