工具丨Git 必須掌握的基本操作
作者:娜姐
來源:Java聯盟
昨天娜姐已經教大家配置好Git了(工具丨 Git 配置教程),今天娜姐就把之前花了一個晚上的時間,嘔心吐血給大家整理的 Git 必須掌握的基本操作,送給大家,內容較多,建議大家先碼後看~
一、基本操作
1-創建倉庫
Git init:在一個文件目錄執行該指令,會把該目錄快速設置成Git的代碼倉庫。
Git clone:從遠程服務器clone工程,也會創建一個代碼倉庫。
2-提交修改
git status
查看當前倉庫狀態。
會提示那些文件發生修改,
哪些內容需要 add&commit 。
git add 文件名
添加文件到倉庫
git commit -m “這裏是註釋”
將add的文件添加註釋並且提交到代碼倉庫
git log
能查看到剛纔提交的信息
git shortlog
將開發者操作按照姓名分組
git commit –amend -m
“這裏是追加的註釋,會覆蓋上次的註釋”
如果上一個註釋寫錯,
可以這樣進行修改和追加。
3-diff比較不同
git diff ReadMe.txt(文件名)
顯示指定內容的前後變化
git diff HEAD
顯示出上次提交節點的差別
git還支持第三方更強大的diff工具
Meld、beyond compare
gitk
圖形化的log記錄
4-別名設置,簡化log
git config – global alias.lg “log – color –graph –pretty=format:’%Cred%h%Creset-%C(yellow)%d%Creset%s%Cgreen(%cr)%C(bold blue)
二、Git操作區域
Git三個區域:工作區(開發修改代碼區域)、暫存區、歷史區(保存各個版本區域)
暫存區:Git根目錄下 > .git > index的文件中,保存了所有的代碼提交記錄。
add操作就是將記錄保存到暫存區,此時Head依然指向之前的內容,通過commit將暫存區的內容全部提交,之後Head指向最新內容(通過gitk查看)(Git管理的是修改內容,而不是文件)
三、Git 回退
git checkout ReadMe.txt(文件名)
將未add提交的修改內容全部還原,
如果執行add後修改的內容,
執行該指令會修改到執行好add後。
git checkout – ReadMe.txt(文件名)
能將add提交的內容都回退掉
git reset HEAD ReadMe.txt(文件名)
文件從暫存區回退到工作區
1-回退版本
git reset –hard HEAD~1
回退一個版本
git reset –hard HEAD~5
回退5個版本
hard參數:不僅僅是將本地版本庫的頭指針全部重置到指定版本,也會重置暫存區,並且會將工作區代碼也回退到這個版本。也可以通過commit ID回退到對應版本。
2-操作歷史
git reflog
可以查看所有操作的歷史!
四-文件操作
git rm ReadMe.txt(文件名)
刪除文件
五-文件暫存
在 main 分支上開發功能的時候,開發到一半,發現了以前的BUG,這時新建一個BUG分支,在上面修復BUG。但是因爲 main 分支開發的功能開發到一半,會導致 BUG 分支無法編譯通過。這時候可以用`git stash`暫存當前的修改。
在修改前的分支作爲新的 BUG 分支。等解決 BUG 後切換回 main 分支的時候,再把暫存的內容 Pop 出來。
先 checkout 一個BUG分支,修改BUG後,用`git merge`合併到 master 分支,並且刪除了BUG分支。這時候回到main分支,通過`git stash` pop 出之前暫存的內容。
git stash
暫存
git stash list
查看當前暫存內容
git stash apply/pop
內容恢復,後者會刪除記錄,
前者可以通過git stash drop刪除暫存記錄。
六-遠程倉庫
Git本地倉庫和Git遠程倉庫通信,需要SSH進行身份認證
ssh-keygen -t rsa -C “[email protected]”
創建SSH私鑰和公鑰,id_rsa私鑰用於驗證自己身份。id_rsa.pub公鑰用於向服務器表明自己的身份。
git remote add
將本地代碼庫提交到遠程倉庫
git push -u origin master
將本地master分支提交到遠程的master分支,並關聯起來。
git pull –rebase
如果Apush修改前,B push了修改,A push的時候需要先從遠程獲取最新修改。這個指令不會產生過多的merge歷史。
git clone git地址
就能從遠程倉庫clone下來,
新建一個本地倉庫。
七-分支管理
git checkout -b first
創建新分支,並且切換到該分支,等價於:
git brach first 創建分支
git checkout first 切換分支
如果此時有未提交的修改,是無法切換分支的,這時候就可以用git stash進行暫存
git branch
查看分支
-r顯示所有遠程分支,
-a顯示所有本地分支和遠程分支
(master)git merge first
在first分支進行修改、add、commit後,
切換到master分支,
合併第一個分支到master分支。
注意:merge和rebase,rebase操作後時間線會合並,merge不會。其餘都是一樣的。
git branch -d first
刪除分支first。-d是刪除分支,
-D是強行刪除分支。
git remote origin
查看遠程分支
git remote -v origin
查看詳細信息
git checkout -b dev
git push origin dev
將dev分支推送到遠程倉庫。
一般項目有一箇中央的分支,用於打 tag和發佈realse版本。會新建一個develop 分支進行開發,每個開發者再從 develop 分支新建自己的分支,功能完成後會 merge 到 develop 分支。 git add/commit 是分別從工作區,到暫存區,再到版本區。 git push 用於版本區到遠程倉庫。 遠程倉庫獲取最新內容是 git pull 到工作區 版本區到工作區是git checkout HEAD 暫存區到工作區是git checkout。
八-Tag
Tag用於記錄某個commit點或者分支的歷史快照。Tag通常打在Master分支上,以保證代碼的準確性。
git tag version1
創建Tag,會記錄在最後的提交上
git tag version2 commitID (commit點的ID)
在commitID點加上tag
git tag
查看所有Tag
git tag -a v1 -m “vesion1” b87123665216321635173
-a制定tag名字,-m制定註釋文字
git show tag名字
顯示tag的詳細信息
git tag -d version0
刪除tag
git push origin version0
推送tag到遠程倉庫
git push origin –tags
推送所有本地tag到遠程倉庫
刪除遠程Tag
刪除本地tag,再重新push到遠程代碼庫…….
呼~終於寫完了,小夥伴不要急,收藏起來慢慢看慢慢學,其實還是很簡單的,只是稍微有點多,好了,娜姐愛你們~
-END-