列出當前所在的路徑
pwd
創(chuàng)建一個名稱為doc的文件夾
mkdir doc
進入doc文件夾
cd doc
查看git 文件管控狀態(tài)
git status
初始化git 目錄 【已經(jīng)創(chuàng)建好的項目】
git init
創(chuàng)建一個名稱為projectName的git倉庫【針對一個全空的倉庫創(chuàng)建】
git init projectName
查看git配置,local為本倉庫,global 為當前用戶的所有倉庫 , system 本系統(tǒng)的所有用戶
git config --list [--local | --global | --system]
添加git配置,用戶名稱
git config --global user.name ‘your name’
添加git配置,用戶郵箱
git config --global user.email ‘your email’
將文件 readMe、文件夾doc 加入到暫存區(qū)
git add readMe doc
把已經(jīng)被git 管控了的所有變更的文件都納入暫存區(qū)【不會提交新文件(untracked file)】
git add -u
將git管控的文件和新增的文件都添加到暫存區(qū)【不包含刪除的文件】
git add .
將git 管控的文件修改、新增、刪除都添加到暫存區(qū)【包含以上兩種命令的操作】
git add -A 或 git add -all
不經(jīng)過add的操作到暫存區(qū),直接提交commit操作
git commit -am'commit log'
查看所有分支的歷史
git log --all
圖形化查看所有分支的log
git log --all --graph
查看單行的簡潔log
git log --oneline
查看最近的四條簡潔log
git log --oneline -n4
查看所有分支最近5條簡潔的圖形化log
git log --oneline --all -n5 --graph
給文件重命名
git mv oldFileName newFileName
查看2d85sd文件的內(nèi)容
git cat-file -p 2d85sd
產(chǎn)看2d85sd文件的類型
git cat-file -t 2d85sd
覆蓋緩存區(qū)所有文件,還原最新的提交
git reset --hard
分離頭指針 具體為直接從一個commit直接 checkout 出來的分支(注意:不是checkout -b),此時該分支并沒有依賴任何一個分支,git 過段時間會自動清理這些分支,會導致代碼丟失,所以該操作主要用在 針對某個commit 上檢驗某種分案是否可行,如果可行,則執(zhí)行git branch newBranchName 2d8dk82 命令,則可以針對2d8dk82 該次的commit上新建一個名為newBranchName 分支
git checkout 2d8dk82 分離頭指針
git branch newBranchName 2d8dk82
進入圖形化頁面
gitk --all
** 列出當前目錄的所有文件追加 -al 查看文件信息,包括文件的類型與權限、大小、修改時間等**
ls [ -al ]
查看所有分支
git branch -av
根據(jù)某個分支checkout 并切換到該分支上 可以根據(jù)某個分支源上或者某個commit哈希值來進行創(chuàng)建分支(默認為當前分支上創(chuàng)建分支)
git checkout -b newBranchName [ sourceBranchName | commit哈希值 ]
對比兩個commit的差異 注意:末尾還可以跟上具體文件名,顯示該文件的差異
git diff commitID1 commitID2 【對比兩個commit的差異】
git diff HEAD commitID1 【對比HEAD 和commitID1 的差異】
git diff HEAD 【對比HEAD 和暫存區(qū)的差異】
保存現(xiàn)場代碼 應用場景:如果有一天,你要接到一個緊急的bug要處理,但是現(xiàn)在手頭上的這份代碼還沒寫完,又不想生成一個commit提交,那么可以使用stash 來保存現(xiàn)場代碼。當執(zhí)行完這句命令,你修改的代碼就會被臨時保存起來,然后恢復該分支最新的一個commit狀態(tài)。當你改完緊急的bug后,你可以通過恢復現(xiàn)場代碼來,恢復剛剛保存的現(xiàn)場代碼,繼續(xù)寫。
git stash 默認的保存方式,一般用下面這種比較好,可以描述現(xiàn)場代碼
git stash save stashName 保存為stashName的現(xiàn)場,這樣更加容易區(qū)分是什么現(xiàn)場代碼
現(xiàn)場代碼列表查看 可以查看你保存的現(xiàn)場代碼列表,其中stash@{x} ,x數(shù)字越大,表示現(xiàn)場代碼是越舊
git stash list
apply 方式恢復現(xiàn)場代碼 該方式恢復現(xiàn)場代碼,在現(xiàn)場代碼列表中還會保存著,并沒有從列表中刪除
git stash apply 默認恢復的現(xiàn)場代碼為最新保存的現(xiàn)場代碼
git stash apply stash@{x} 恢復指定的現(xiàn)場代碼
pop 方式恢復現(xiàn)場代碼 該方式恢復現(xiàn)場代碼,會從現(xiàn)場列表代碼中彈出,并從列表中刪除該現(xiàn)場代碼
git stash pop 默認恢復的現(xiàn)場代碼為最新保存的現(xiàn)場代碼
git stash pop stash@{x} 恢復指定的現(xiàn)場代碼
刪除現(xiàn)場代碼
git stash drop 默認刪除最新保存的現(xiàn)場代碼
git stash drop stash@{x} 刪除指定的現(xiàn)場代碼
刪除本地分支
git branch -d branchName 刪除分支名為branchName的分支,如果該分支代碼有修改過,而又未曾被合并,執(zhí)行該命令會提示錯誤。咨詢是否需要強制刪除,如果確保修改的代碼無用的話,則使用如下語句進行強制性刪除
git branch -D branchName
刪除遠程分支
git push origin --delete branchName 刪除遠程分支名為branchName 的分支
先有項目更換倉庫地址
- 先查看遠程地址
git remote -v
- 重新設置git的新地址
git remote set-url origin https://gitee.com/null_665_7650/bulyfixbug.git
- 將項目上傳到git上
git push -u origin --all
git push -u origin --tags
git合并某個提交commit到指定的分支上
1.查看提交的日志,復制要合并的那個分支的commit id
git log
2.bugfix 要合并commit id 的分支
git checkout bugfix
- xxxxxxxxxxxshi 要合并的commit id
git cherry-pick xxxxxxxxxxxxxx