使用前需要先安裝git
cd /usr/ports/devel/git make install clean
基本操作
git config --global color.ui true #開啟顏色,使git內容不會只有單一白色 git config --global user.name "johnsonlu" #設定名稱 git config --global user.email "johnsonlu@email.com" #設定信箱 git config --global core.editor "vim" #設定預設編輯器 #預設push的設定 #matching:代表自動push出所有與remote端branch相同名稱的branch #simple:只push當前所在的branch git config --global push.default <matching or simple> git init #初始化git git add filename #新增檔案 git add -p filename #新增檔案部份片段程式(進去內部後可以使用s再細分,也可以用e針對每一行處理,把不需要進這次commit的行數用#字號註解) git add modifyfile #新增修改過的檔案 git add -u #只新增修改過的檔案,新增的檔案不加入 git rm filename #刪除檔案(原始檔案一併刪除) git rm --cache filename #刪除檔案(不刪除原始檔案) git mv filename new-filename #修改檔案 git status #看目前檔案的狀態 git commit git commit -m "commit message" #增加註解 git commit -a #將所有修改過得檔案都 commit,但是新增的檔案還是要先add git commit -a -v # -v 可以看到檔案哪些內容有被更改 git commit --amend #修改上次commit訊息 git commit --amend <file1> <file2> #將檔案加入上一次commit git commit --amend --reset-author #將上次commit的作者資訊更新 git diff #查看git server上有哪些資料不同 git diff master #查看與master有哪些資料不同 git diff --stat #查看哪些檔案不同(只顯示答案) git branch #列出目前有多少branch git branch -a #列出所有branch git branch test-branch #產生新的branch git branch test-branch master #由master產生新的branch git branch -d test-branch #刪除branch git branch -D test-branch #強制刪除branch git checkout branch-name #切換到branch-name git checkout master #切換到master git checkout -b test-branch master #從master建立新的branch,並同時切換過去 git checkout <commit_hash> -b test #切換到某次commit並建立新的branch git checkout --track origin/branch #取得remote branch git push git@github.com:test/test.git #傳上github(origin/master) git push git@github.com:test/test.git branch #將branch傳上git server((origin/master)) git push git@github.com:johnson4932/test.git :branch #將git server上的branch刪除(以github為例,上傳與刪除差別在於冒號) git push <origin> --delete <branch> #另一種刪除線上branch的方法 git pull git@github.com:test/test.git #將該專案的檔案從git server拉下來merge(以github為例) git clone git@github.com:test/test.git #將該專案資料夾從git server clone一份出來(以github為例) git clone git@github.com:test/test.git --branch <branch> #clone branch git merge test-branch #將test-branch merge 到現在的branch git log --stat #可以看到commit紀錄 git log --author account #可看到該accout的log git log --graph --oneline --all #顯示git樹狀結構 #復原 git checkout <deleteing_commit>^ -- <file_path> #還原已經commit刪除的檔案 ex: git checkout b05128e3ebd4f38c317f066d679aee21c7d3af65^ -- config/ldap-sample.php git checkout -- <file_path> #將還沒add但已修改的檔案還原 git reset HEAD <file_path> #將已經add還沒commit的檔案還原 git reset HEAD^ #將最後一次commit釋放掉 git reset <commit_hash> #釋放commit到特定版本 git revert HEAD #回到上一次commit版本(會做一次commit)
另外有個可以取代直接git log的好東西,叫做tig,算是git log的瀏覽介面
可以直接下tig指令查看log
FreeBSD安裝
cd /usr/ports/devel/tig make install clean