作者:娜姐

來源:Java聯盟

昨天娜姐已經教大家配置好Git了(工具丨 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 回退

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 必須掌握的基本操作

四-文件操作

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 必須掌握的基本操作

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分支推送到遠程倉庫。

工具丨Git 必須掌握的基本操作

一般項目有一箇中央的分支,用於打 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到遠程代碼庫…….

呼~終於寫完了,小夥伴不要急,收藏起來慢慢看慢慢學,其實還是很簡單的,只是稍微有點多,好了,娜姐愛你們~

工具丨Git 必須掌握的基本操作

-END-

相關文章