前言
Git在平時的開發(fā)中經(jīng)常使用,整理Git使用全面的梳理。
基本內(nèi)容
開始之前
請自行準(zhǔn)備好Git工具以及配置好Git的基本配置
基礎(chǔ)內(nèi)容
基礎(chǔ)概念
如下內(nèi)容,在碼云或者Github上新建倉庫出現(xiàn)的內(nèi)容,
mkdir demo
cd demo
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/will-we/demo.git
git push -u origin master
基礎(chǔ)命令
git init 創(chuàng)建git倉庫
git add 把文件添加進去,實際上就是把文件修改添加到暫存區(qū)
git status 查看倉庫當(dāng)前的狀態(tài)
git diff查看difference
git log顯示從最近到最遠的提交日志
git reset --hard版本回復(fù),格式:git reset --hard commit的Id號
git reset --hard HEAD^ 回到上次提交的版本
git reflog記錄在本地存儲庫中更新分支和其他引用的提示
git checkout -- file文件在工作區(qū)的修改全部撤銷
git reset HEAD <file>將當(dāng)前版本上文件恢復(fù)
git rm 刪除暫存區(qū)的文件(直接工區(qū)刪除后,提交版本庫也刪除)
遠程倉庫
開始之前,請配置本地與遠程倉庫的相關(guān)配置,秘鑰等配置
git remote查看遠程庫的信息
git remote -v顯示更詳細的信息
git push origin master推送到遠程主分支
> 推送失敗,先用git pull抓取遠程的新提交,有沖突先解決沖突
分支管理
基本命令
git checkout -b dev創(chuàng)建并切換dev分支
git branch查看所有分支,當(dāng)前分支*表示
git branch <name>創(chuàng)建分支
git merge命令用于合并指定分支到當(dāng)前分支
git branch -d <name>刪除分支
git branch -D <name>強行刪除分支(git branch -d <name>刪除操作時會該分支做合并,如果沒有合并將出現(xiàn)錯誤)
git log --graph --pretty=oneline --abbrev-commit看到分支的合并情況
stash命令
git stash將工作備份后臨時清理工作區(qū)為版本庫,用于緊急修改缺陷場景
git stash list查看備份的工作現(xiàn)場
git stash apply恢復(fù)工作現(xiàn)場
git stash drop刪除之前的備份現(xiàn)場
git stash pop先恢復(fù)再刪除之前的備份
rebase命令
git rebase作用 和git merge的效果類似,但是git rebase不再包含分支的提交信息最終log為一條直線
關(guān)于兩者的區(qū)別可參考內(nèi)容: git rebash 和 git merge 區(qū)別
在rebase的過程中,也許會出現(xiàn)沖突(conflict). 在這種情況,Git會停止rebase并會讓你去解決 沖突;在解決完沖突后,用"git-add"命令去更新這些內(nèi)容的索引(index), 然后,你無需執(zhí)行 git-commit,只要執(zhí)行;當(dāng)然可以--absort回復(fù)到rebase之前的狀態(tài)。
$ git rebase --continue
沖突問題
“<<<<<<<” 表示沖突代碼開始
“=======” 表示test與master沖突代碼分隔符
“>>>>>>>" 表示沖突代碼的結(jié)束
標(biāo)簽管理
git tag顯示標(biāo)簽列表
git tag <tagname>添加輕標(biāo)簽
git log --decorate顯示包含標(biāo)簽資料的歷史記錄
git tag -a <tagname> -m '注解內(nèi)容'添加注解標(biāo)簽
git tag -n顯示標(biāo)簽的列表和注解
git tag -d <tagname>刪除標(biāo)簽
git push origin <tagname>可以推送一個本地標(biāo)簽
git push origin --tags可以推送全部未推送過的本地標(biāo)簽;
git push origin :refs/tags/<tagname>可以刪除一個遠程標(biāo)簽
參考教程