Linux中Gitee的使用

一、Gitee簡介:

? ? ? ? Gitee(碼云)是中國的一個代碼托管和協作開發平臺,類似于GitHub或GitLab,主要面向開發者提供代碼管理、項目協作及開源生態服務。

適用場景

  • 個人開發者:托管私有代碼或參與開源項目。

  • 中小企業:低成本搭建代碼管理平臺。

  • 教育機構:教學或學術項目管理。

對比GitHub

  • 優勢:國內訪問穩定,中文支持好,符合本地法規。

  • 不足:國際影響力較弱,開源生態規模較小。

總之,Gitee是中國開發者常用的Git托管平臺,尤其適合需要高效協作和本地化服務的團隊。

二、Linux中Gitee的應用

1、創建Git目錄

代碼如下:

mkdir gitecode(此處目錄可自行起名字)

2、創建本地Git

????????在所創建的目錄下建立本地gitee,代碼如下:

git init

3、檢測是否建立成功

????????.git即為剛剛所建立的本地倉庫

4、Git的配置

(1)配置name和email

? ? ? ? 建立本地gitee后,我們需要配置name和email ,這里就需要大家填寫自己創建Git是的信息了,我這里是隨便填的用來演示的。

代碼如下:

git config user.name "Git用戶名"
git config user.email "Git創建時的郵箱"

(2)查看配置文件

代碼如下:

git config -l

(3)刪除配置文件

? ? ? ? 想必大家有可能會手殘配置出錯等情況,不過不要慌,我們這里還有刪除配置操作代碼如下:

git config --unset (user.name)此處為要刪除的配置

(4)--globle

? ? ? ? 作用在系統的全局下配置的文件在所有的Git文件中都生效。

代碼示例:

git config --global user.name 'LWF' 
git config --global user.email '123123@qq.com'

與此同時,我們需要注意這里刪除全局的配置文件時也需要加--global,否則刪不掉。

代碼示例:

git config --global --unset (user.name)此處為要刪除的配置

5、認識工作區、暫存區、版本庫

????????修改(add):新增、修改、刪除(這幾個操作都算修改)

????????修改的工作內容會寫入對象庫的一個新增的git對象中。

示例圖如下:

6、添加文件

(1)場景1:

? ? ? ? 我們可以通過一些指令來連接工作區和版本區。

git add (工作區已“修改”的文件)
//git add . 表示添加當前工作區下全部已修改的文件
git commit -m "這里面填寫修改的細節相當于日志,不要亂寫"

(2)查看add(修改)內容(日志)

? ? ? ? 由上述圖片我們可以知道.git的objicts目錄會記錄修改內容那我們如何查看呢?

當然,這里我們也是可以通過指令來查看的。代碼:

git cat-file -p -(該部分為加碼部分需要在自己系統查看)
//效果見下面圖即可理解

(3)場景二:

? ? ? ? 在添加文件時我們可能遇到下面的場景,我們的目的是將file1和file2同時提交到本地倉庫中但是我們會發現我們只提交了file1。原因是我們只將file1添加到了暫存區,而git commit 只會提交暫存區的內容。

? ? ? ? 要想將file2也提交到本地倉庫只需如下操作即可:

7、修改文件

????????Git ?其他版本控制系統設計得優秀,因為Git跟蹤并管理的是修改,???件。

什么是修改?

?????????如你新增了??,這就是?個修改,刪除了??,也是?個修改,更改了某些字符, 也是?個修改,刪了?些?加了?些,也是?個修改,甚?創建?個新?件,也算?個修改。

(1) git status

? ? ? ? 該命令?于查看在你上次提交之后是否有對?件進?再次修改。

使用效果可看圖中示例:

? ? ? ? 初始時我們是nothing to do,新建文件即(修改操作)是我們的狀態是需要將文件add到暫存區。

? ? ? ?添加之后我們的狀態是需要將其提交到本地倉庫:

? ? ? ? 提交成功后會發現我們的狀態又會回到初始的狀態

(2)git diff [file]

????????git diff [file] 命令?來顯?暫存區和?作區?件的差異,顯?的格式正是Unix通?的diff格式。也可以使? git diff HEAD -- [file] 命令來查看版本庫和?作區?件的區別。

圖中的-1

8、版本回退

????????之前我們也提到過,Git能夠管理?件的歷史版本,這也是版本控制器重要的能?。如果有?天你發現 之前前的?作做的出現了很?的問題,需要在某個特定的歷史版本重新開始,這個時候,就需要版本 回退的功能了。

????????執? git reset 命令?于回退版本,可以指定退回某?次提交的版本。要解釋?下“回退”本質是 要將版本庫中的內容進?回退,?作區或暫存區是否回退由命令參數決定:

git reset 命令語法格式為: git reset ? [- soft | - mixed | - hard] [ HEAD]

????????--mixed 為默認選項,使?時可以不?帶該參數。該參數將暫存區的內容退回為指定提交版本內 容,?作區?件保持不變。

????????-- soft 參數對于?作區和暫存區的內容都不變,只是將版本庫回退到某個指定版本。

????????-- hard 參數將暫存區與?作區都退回到指定版本。切記?作區有未提交的代碼時不要?這個命 令,因為?作區會回滾,你沒有提交的代碼就再也找不回了,所以使?該參數前?定要慎重。

下面我們可以通過一張圖片來了解一下上面的概念git 表示回退的內容。

圖中的git表示回退,git work 表示未回退。

??????

????????這里我們演示一下--hard 指令(hard指令會直接將你原有的代碼文件全部回退因此要慎重使用),當然如果這里我們回退錯了也可以回退到未回退的狀態(前提有未執行回退操作時的id)。

? ? ? ?

????????上述操作,是需要git log 來查看原有的id,運氣好的話我們能查到,但總會出現一種情況就是git log 的內容被刷新掉找不到原始的id,這是我們怎么辦呢?

????????Git 還提供了?個 git reflog 命令能補救?下,該命令?來記錄本地的每?次命令。

9、撤銷修改

情況?:對于?作區的代碼,還沒有 add

????????對于?作區的代碼,還沒有 add,我們有兩種做法,一種是直接手動刪除,但這種做法不太推薦,因為假設你已經對一段代碼編寫了三天保存,然后這次你再進行修改,如果說你想回退到修改前的版本,你可能不會確定你修改了哪些,因此,我們還是建議用第二種方法git checkout -- [file]來修改。

情況?:已經 add ,但沒有 commit

add后還是保存到了暫存區呢?怎么撤銷呢?

????????讓我們來回憶?下學過的 git reset 回退命令,該命令如果使?--mixed 參數,可以將暫存區 的內容退回為指定的版本內容,但?作區?件保持不變。那我們就可以回退下暫存區的內容了!!! ?例如下:

情況三:已經 add ,并且也 commit 了

????????我們可以 git reset --hard HEAD^ 回退到上?個版本!不過,這是有條件的,就是 你還沒有把??的本地版本庫推送到遠程。還記得Git是分布式版本控制系統嗎?我們后?會講到遠程 版本庫,?旦你推送到遠程版本庫,你就真的慘了……

具體效果如圖所示:

10、刪除文件

????????在Git中,刪除也是?個修改操作,我們實戰?下,如果要刪除file5,怎樣操作呢?

方法一:直接rm file5 ,但這樣直接刪除是沒有?的,反?徒增煩惱,此時,?作區和版本庫就不?致了,要刪?件,?前除了要刪?作區的?件,還要清除版本庫的?件。

?????????般?到這?,有兩種可能:

????????????????1.確實要從版本庫中刪除該?件

????????????????2.不??刪錯了

對第?種情況,很明顯誤刪,需要使? git checkout -- [file]來進?恢復,很簡單,我們剛學過(刪除也是修改)。

對于第?種情況,很明顯是沒有刪完,我們只刪除了?作區的?件。這時就需要使? git rm?將? 件從暫存區和?作區中刪除,并且 commit :

方法二:直接實用 git rm file4 通過用例可以看出,上面的方法一顯然多此一舉,所以說建議直接使用方法二。

11、分支管理

(1)理解分?

????????本章開始介紹 Git 的殺?級功能之?(注意是之?,也就是后?還有之?,之三……):分?。分?就 是科幻電影??的平?宇宙,當你正在電腦前努?學習 C++ 的時候,另?個你正在另?個平?宇宙? 努?學習 JAVA。

????????如果兩個平?宇宙互不?擾,那對現在的你也沒啥影響。不過,在某個時間點,兩個平?宇宙合并 了,結果,你既學會了 C++ ?學會了 JAVA!

? ? ? ??在版本回退?,你已經知道,每次提交,Git都把它們串成?條時間線,這條時間線就可以理解為是? 個分?。截?到?前,只有?條時間線,在Git?,這個分?叫主分?,即 master 分?。 再來理解?下HEAD,HEAD 嚴格來說不是指向提交,?是指向master,master才是指向提交的,所 以,HEAD 指向的就是當前分?。

????????每次提交,master分?都會向前移動?步,這樣,隨著你不斷提交,master分?的線也越來越?,? HEAD只要?直指向master分?即可指向當前分?。

(2)創建分支

????????Git ?持我們查看或創建其他分?,在這?我們來創建第?個??的分? dev ,對應的命令為:

????????當我們創建新的分?后,Git 新建了?個指針叫 dev, * 表?當前 HEAD 指向的分?是 master 分 ?。另外,可以通過?錄結構發現,新的 dev 分?:

(3)切換分支

? ? ? ? 我們如何切換到dev 分?下進?開發呢?使? git checkout 命令即可完成切換,?例如下:

我們發現 HEAD 已經指向了 dev,就表?我們已經成功的切換到了 dev 上! 接下來,在 dev 分?下修改 file3?件,新增??內容,并進??次提交操作:

現在,dev 分?的?作完成,我們就可以切換回 master 分?:

切換回 master 分?后,發現ReadMe?件中新增的內容不?了!!!

在 dev 分?上,內容還在。為什么會出現這個現象呢?我們來看看 dev 分?和 master 分?指向,發 現兩者指向的提交是不?樣的:

看到這?就能明?了,因為我們是在dev分?上提交的,?master分?此刻的提交點并沒有變,此時的狀態如圖如下所?。

(4)合并分支

為了在 master 主分?上能看到新的提交,就需要將 dev 分?合并到 master 分?,?例如下:

git merge 命令?于合并指定分?到當前分?。合并后,master 就能看到 dev 分?提交的內容 了。此時的狀態如圖如下所?:

Fast-forward 代表“快進模式”,也就是直接把master指向dev的當前提交,所以合并速度?常快。 當然,也不是每次合并都能 Fast-forward,我們后?會用到其他?式的合并

(5)刪除分支

????????合并完成后, dev 分?對于我們來說就沒?了, 那么dev分?就可以被刪除掉,注意如果當前正處于某 分?下,就不能刪除當前分?,如:

?????????可以在其他分?下刪除當前分?,如:

(6)合并沖突

????????可是,在實際分?合并的時候,并不是想合并就能合并成功的,有時候可能會遇到代碼沖突的問題。 為了演?這問題,創建?個新的分? dev1 ,并切換??標分?,我們可以使? git checkout - b dev1 ?步完成創建并切換的動作,在 dev1 分?下修改 file3?件,更改?件內容如下,并進??次提交,?例如下:

切換? master 分?,觀察 file3?件內容,我們發現,切回來之后,?件內容由變成了?的版本,這種現象很正常,我們現在也完全能理解。 此時在 master 分?上,我們對 ReadMe ?件再進??次修改,并進?提交,如下:

? ? ? ? 現在,master分支和dev1分?各?都分別有新的提交,變成了這樣:

這種情況下,Git 只能試圖把各?的修改合并起來,但這種合并就可能會有沖突,如下所?:

????????發現 file3?件有沖突后,可以直接查看?件內容,要說的是 Git 會? >>>>>> 來標記出不同分?的沖突內容,如下所?:

????????此時我們必須要?動調整沖突代碼,并需要再次提交修正后的結果!!(再次提交很重要,切勿忘 記)

到這?沖突就解決完成,此時的狀態變成了

?帶參數的 git log也可以看到分?的合并情況,具體?家可以??搜索 git log 的?法:

最后,不要忘記 dev1 分?使?完畢后就可以刪除了。

(7)分?管理策略

????????通常合并分?時,如果可能,Git 會采? Fast forward 模式。在這種 Fast forward 模式下,刪除分?后,查看分?歷史時,會丟掉分?信息,看不出來最新提交到底是 merge 進來的還是正常提交的。

????????但在合并沖突部分,我們也看到通過解決沖突問題,會再進??次新的提交,得到的最終狀態為:

????????那么這就不是 Fast forward 模式了,這樣的好處是,從分?歷史上就可以看出分?信息。例如我 們現在已經刪除了在合并沖突部分創建的 dev1 分?,但依舊能看到 master 其實是由其他分?合并得到:

????????Git ?持我們強制禁? Fast forward 模式,那么就會在 merge 時?成?個新的 commit ,這樣, 從分?歷史上就可以看出分?信息。

????????下?我們實戰?下 --no-ff ?式的 git merge 。?先,創建新的分? dev2 ,并切換?新的分?,修改 file3?件,并提交?個新的 commit:

切回 master 分?,開始合并:

????????請注意 --no-ff 參數,表?禁? Fast forward 模式。禁? Fast forward 模式后合并會創建 ?個新的 commit ,所以加上 -m 參數,把描述寫進去。

????????所以在合并分?時,加上 --no-ff 參數就可以?普通模式合并,合并后的歷史有分?,能看出來曾 經做過合并,? fast forward 合并就看不出來曾經做過合并。

(8)分支策略

在實際開發中,我們應該按照?個基本原則進?分?管理:

?????????先,master分?應該是?常穩定的,也就是僅?來發布新版本,平時不能在上??活;

????????那在哪?活呢??活都在dev分?上,也就是說,dev分?是不穩定的,到某個時候,?如1.0版本發布時,再把dev分?合并到master上,在master分?發布1.0版本;

????????你和你的同事們每個?都在dev分?上?活,每個?都有??的分?,時不時地往dev分?上合并就可以了。

(9)bug分支

????????假如我們現在正在 dev2 分?上進?開發,開發到?半,突然發現 master 分?上?有 bug,需要解決。在Git中,每個 bug 都可以通過?個新的臨時分?來修復,修復后,合并分?,然后將臨時分?刪除。

可現在 dev2 的代碼在?作區中開發了?半,還?法提交,怎么辦?例如:

?????????未提交的更改會跟隨分支切換,示例如下

????????Git 提供了 git stash 命令,可以將當前的?作區信息進?儲藏,被儲藏的內容可以在將來某個時間恢復出來。

?

????????? git status 查看?作區,就是?凈的(除?有沒有被 Git 管理的?件),因此可以放?地創建分 ?來修復bug。

????????儲藏 dev2 ?作區之后,由于我們要基于master分?修復 bug,所以需要切回 master 分?,再新 建臨時分?來修復 bug,?例如下:

修復完成后,切換到 master 分?,并完成合并,最后刪除 fix_bug 分?:

?????????此,bug 的修復?作已經做完了,我們還要繼續回到 dev2 分?進?開發。切換回 dev2 分?,?作區是?凈的,剛才的?作現場存到哪去了?? git stash list 命令看看:

?????????作現場還在,Git 把 stash 內容存在某個地?了,但是需要恢復?下,如何恢復現場呢?我們可以使 ? git stash pop 命令,恢復的同時會把 stash 也刪了,?例如下:

????????另外,恢復現場也可以采? git stash apply 恢復,但是恢復后,stash內容并不刪除,你需要 ? git stash drop 來刪除;

????????你可以多次stash,恢復的時候,先? git stash list 查看,然后恢復指定的stash,?命令 git stash apply stash@{0} ,這部分??使?。

但我們注意到了,修復 bug 的內容,并沒有在 dev2 上顯?。

? ? ? ? master 分??前最新的提交,是要領先于新建 dev2 時基于的 master 分?的提交的,所以我們 在 dev2 中當然看不?修復 bug 的相關代碼。

????????我們的最終?的是要讓 master 合并 dev2 分?的,那么正常情況下我們切回 master 分?直接合 并即可,但這樣其實是有?定?險的。

????????是因為在合并分?時可能會有沖突,?代碼沖突需要我們?動解決(在 master 上解決)。我們?法 保證對于沖突問題可以正確地?次性解決掉,因為在實際的項?中,代碼沖突不只?兩?那么簡單, 有可能??上百?,甚?更多,解決的過程中難免?誤出錯,導致錯誤的代碼被合并到 master 上。?

????????解決這個問題的?個好的建議就是:最好在??的分?上合并下 master ,再讓 master 去合并 dev ,這樣做的?的是有沖突可以在本地分?解決并進?測試,?不影響 master 。對應的實操演?如下:

1、dev 合并 master 并解決沖突、重新提交:

2、切回master 并合并dev2 --無需解決沖突

(10)強制刪除分支

????????在現實中有這么一種情況,產品經理會讓你開發一項功能,然后你就需要創建一個分支來開發,在你開發一部分的時候在分支已經提交過,然后產品經理告訴你這一項目取消了,不用再繼續了,這時候我們就需要刪除該分支,我們會發現用以前的刪除分支方法git branch -d會報錯,演?如下:

直接使?傳統的刪除分?的?法不?,按照提?,有了如下?式:

(11)分支小結

????????分?在實際中有什么?呢?假設你準備開發?個新功能,但是需要兩周才能完成,第?周你寫了50% 的代碼,如果?刻提交,由于代碼還沒寫完,不完整的代碼庫會導致別?不能?活了。如果等代碼全 部寫完再?次提交,?存在丟失每天進度的巨??險。

????????現在有了分?,就不?怕了。你創建了?個屬于你??的分?,別?看不到,還繼續在原來的分?上 正常?作,?你在??的分?上?活,想提交就提交,直到開發完畢后,再?次性合并到原來的分? 上,這樣,既安全,?不影響別??作。

????????并且 Git ?論創建、切換和刪除分?,Git在1秒鐘之內就能完成!?論你的版本庫是1個?件還是1萬個?件。

12、遠程操作

(1)理解分布式版本控制系統

????????我們?前所說的所有內容(?作區,暫存區,版本庫等等),都是在本地!也就是在你的筆記本或者 計算機上。?我們的 Git 其實是分布式版本控制系統!什么意思呢?

????????可以簡單理解為,我們每個?的電腦上都是?個完整的版本庫,這樣你?作的時候,就不需要聯? 了,因為版本庫就在你??的電腦上。既然每個?電腦上都有?個完整的版本庫,那多個?如何協作 呢???說你在??電腦上改了?件A,你的同事也在他的電腦上改了?件A,這時,你們倆之間只需 把各?的修改推送給對?,就可以互相看到對?的修改了。

????????分布式版本控制系統的安全性要?很多,因為每個?電腦?都有完整的版本庫,某?個?的電腦壞掉 了不要緊,隨便從其他?那?復制?個就可以了。

????????在實際使?分布式版本控制系統的時候,其實很少在兩?之間的電腦上推送版本庫的修改,因為可能 你們倆不在?個局域?內,兩臺電腦互相訪問不了。也可能今天你的同事病了,他的電腦壓根沒有開 機。因此,分布式版本控制系統通常也有?臺充當“中央服務器”的電腦,但這個服務器的作?僅僅 是?來?便“交換”?家的修改,沒有它?家也?樣?活,只是交換修改不?便?已。有了這個“中央服務器”的電腦,這樣就不怕本地出現什么故障了(?如運?差,硬盤壞了,上?的所有東西全部 丟失,包括git的所有內容)

(2)遠程倉庫

????????Git 是分布式版本控制系統,同?個 Git 倉庫,可以分布到不同的機器上。怎么分布呢?最早,肯定只 有?臺機器有?個原始版本庫,此后,別的機器可以 “克隆” 這個原始版本庫,?且每臺機器的版本 庫其實都是?樣的,并沒有主次之分。

????????你肯定會想,?少需要兩臺機器才能玩遠程庫不是?但是我只有?臺電腦,怎么玩?

????????其實?臺電腦上也是可以克隆多個版本庫的,只要不在同?個?錄下。不過,現實?活中是不會有? 這么傻的在?臺電腦上搞?個遠程庫玩,因為?臺電腦上搞?個遠程庫完全沒有意義,?且硬盤掛了 會導致所有庫都掛掉,所以我也不告訴你在?臺電腦上怎么克隆多個倉庫。

????????實際情況往往是這樣,找?臺電腦充當服務器的??,每天24?時開機,其他每個?都從這個“服務 器”倉庫克隆?份到??的電腦上,并且各?把各?的提交推送到服務器倉庫?,也從服務器倉庫中 拉取別?的提交。

????????完全可以??搭建?臺運? Git 的服務器,不過現階段,為了學 Git 先搭個服務器絕對是?題?作。好 在這個世界上有個叫 GitHub 的神奇的?站,從名字就可以看出,這個?站就是提供 Git 倉庫托管服務 的,所以,只要注冊?個GitHub賬號,就可以免費獲得 Git 遠程倉庫。

????????github 是國外的?站,速度?較慢,我們課堂上同統?采?碼云來托管代碼。下來,我們從零開始, 使??下碼云遠程倉庫。

1.新建遠程倉庫

2.填寫基本信息

? ? ? ? 注意:該模板只是演示,具體信息根據個人需求可自行修改。

創建成功

創建成功后,我們可以對遠程倉庫進??個基本的設置:開源or私有

從創建好的遠程倉庫中我們便能看到,之前在本地學習過的分?,也存在于遠程倉庫中并被管理起來 了。剛創建的倉庫有且只有?個默認的master分?

3.克隆遠程倉庫

克隆/下載遠端倉庫到本地,需要使? git clone 命令,后?跟上我們的遠端倉庫的鏈接,遠端倉庫 的鏈接可以從倉庫中找到:選擇“克隆/下載”獲取遠程倉庫鏈接:

SSH 協議和 HTTPS 協議是 Git 最常使?的兩種數據傳輸協議。SSH 協議使?了公鑰加密和公鑰登陸機 制,體現了其實?性和安全性,使?此協議需要將我們的公鑰放上服務器,由 Git 服務器進?管理。使 ? HTTPS ?式時,沒有要求,可以直接克隆下來。

使? HTTPS ?式:

使? SSH ?式:

使? SSH ?式克隆倉庫,由于我們沒有添加公鑰到遠端庫中,服務器拒絕了我們的 clone 鏈接。需要 我們設置?下:

????????第?步:創建SSH Key。在??主?錄下,看看有沒有.ssh?錄,如果有,再看看這個?錄下有沒有 id_rsa 和 id_rsa.pub 這兩個?件,如果已經有了,可直接跳到下?步。如果沒有,需要創建 SSH Key:(我這里是沒有的需要創建)

????????順利的話,可以在??主?錄?找到 .ssh ?錄,??有 id_rsa 和 id_rsa.pub 兩個?件,這兩 個就是SSH Key的秘鑰對, id_rsa 是私鑰,不能泄露出去, id_rsa.pub 是公鑰,可以放?地告 訴任何?。

第?步:添加??的公鑰到遠端倉庫。

點擊 ssh公鑰 選項,進?設置:

????????點擊確認后,需要對你進?認證,輸?你的賬號密碼即可。?此,我們的準備?作全部做完,歡快的 clone吧。

????????done, 成功!如果有多個?協作開發,GitHub/Gitee 允許添加多個公鑰,只要把每個?的電腦上的 Key 都添加到 GitHub/Gitee,就可以在每臺電腦上往 GitHub/Gitee 上提交推送了。 當我們從遠程倉庫克隆后,實際上 Git 會?動把本地的 master 分?和遠程的 master 分?對應起來, 并且,遠程倉庫的默認名稱是 origin 。在本地我們可以使? git remote 命令,來查看遠程庫的信息,或者,? git remote -v 顯?更詳細的信息如:

????????上?顯?了可以抓取和推送的origin的地址。如果沒有推送權限,就看不到 push 的地址。推送是什么 意思呢,我們繼續往下看。

4.向遠程倉庫推送

????????提交時要注意,如果我們之前設置過全局的 name 和 e-mail,這兩項配置需要和 gitee 上配置的?? 名和郵箱?致,否則會出錯。或者從來沒有設置過全局的 name 和 e-mail,那么我們第?次提交時也會報錯。這就需要我們重新配置下了,同樣要注意需要和 gitee 上配置的??名和郵箱?致。如何配置 已講過,在這?就不再贅述。

????????到這?我們已經將內容提交?本地倉庫中,如何將本地倉庫的內容推送?遠程倉庫呢,需要使? git push 命令, 該命令?于將本地的分?版本上傳到遠程并合并,命令格式如下:

git push <遠程主機名> <本地分?名>:<遠程分?名>
# 如果本地分?名與遠程分?名相同,則可以省略冒號:
git push <遠程主機名> <本地分?名>

????????本地已經 clone 成功遠程倉庫后,我們便可以向倉庫中提交內容,例如新增?個 file.txt ?件:

推送成功!這?由于我們使?的是 SSH 協議,是不?每?次推送都輸?密碼的,?便了我們的推送操作。如果你使?的是 HTTPS 協議,有個?煩地?就是每次推送都必須輸??令。

接下來,看看碼云遠端:

5.拉取遠程倉庫

在 gitee 上點擊 README.md ?件并在線修改它:

????????此時,遠程倉庫是要領先于本地倉庫?個版本,為了使本地倉庫保持最新的版本,我們需要拉取下遠 端代碼,并合并到本地。Git 提供了 git pull 命令,該命令?于從遠程獲取代碼并合并本地的版 本。格式如下:

git pull <遠程主機名> <遠程分?名>:<本地分?名>
# 如果遠程分?是與當前分?合并,則冒號后?的部分可以省略。
git pull <遠程主機名> <遠程分?名>

6.配置 Git

忽略特殊?件

????????在?常開發中,我們有些?件不想或者不應該提交到遠端,?如保存了數據庫密碼的配置?件,那怎 么讓 Git 知道呢?在 Git ?作區的根?錄下創建?個特殊的 .gitignore ?件,然后把要忽略的?件 名填進去,Git 就會?動忽略這些?件了。

????????不需要從頭寫 .gitignore ?件,gitee 在創建倉庫時就可以為我們?成,不過需要我們主動勾選? 下:

????????如果當時沒有選擇這個選擇,在?作區創建?個也是可以的。?論哪種?式,最終都可以得到?個完 整的 .gitignore ?件,例如我們想忽略以 .so 和 .ini 結尾所有?件, .gitignore 的內容 如下:

# 省略選擇模本的內容
...
# My configurations:
*.ini
*.so

????????在 .gitignore ?件中也可以指定某個確定的?件。 最后?步就是把 .gitignore 也提交到遠端,就完成了。

gitignore規則:

# 排除所有.開頭的隱藏?件:
.*
# 不排除.gitignore
!.gitignore

給命令配置別名

????????在我們使? Git 期間,有些命令敲的時候著實讓?頭疼(太?了。。),幸運的是,git?持對命令進?簡化!

舉個例?,將 git status 簡化為 git st ,對應的命令為:

 git config --global alias.st status

????????--global 參數是全局參數,也就是這些命令在這臺電腦的所有Git倉庫下都有?。如果不加,那只 針對當前的倉庫起作?。

13、標簽管理

(1)理解標簽

????????標簽 tag ,可以簡單的理解為是對某次 commit 的?個標識,相當于起了?個別名。例如,在項? 發布某個版本的時候,針對最后?次 commit 起?個 v1.0 這樣的標簽來標識?程碑的意義。

????????這有什么?呢?相較于難以記住的 commit id , tag 很好的解決這個問題,因為 tag ?定要給? 個讓?容易記住,且有意義的名字。當我們需要回退到某個重要版本時,直接使?標簽就能很快定位到。

(2)創建標簽

在Git中打標簽?常簡單,?先,切換到需要打標簽的分?上,然后,敲命令 git tag [name] 就可以打?個新標簽,可以?命令 git tag 查看所有標簽:

????????默認標簽是打在最新提交的 commit 上的。那如何在指定的commit上打標簽呢??法是找到歷史提 交的commit id,然后打上就可以了,?例如下:

注意,標簽不是按時間順序列出,?是按字?排序的。

可以? git show [tagname] 查看標簽信息。

Git 還提供可以創建帶有說明的標簽,?-a指定標簽名,-m指定說明?字,格式為:

git tag -a [name] -m "XXX" [commit_id]

????????另外,打完標簽之后,使? tree .git 命令查看?下你的本地庫有什么變化,肯定能幫助你理解!

(3)操作標簽

如果標簽打錯了,也可以刪除:

????????因為創建的標簽都只存儲在本地,不會?動推送到遠程。所以,打錯的標簽可以在本地安全刪除。 如果要推送某個標簽到遠程,使?命令 git push origin

此時,查看遠端碼云,看到了標簽已經被更新!完美!

當然,如果你本地有很多標簽,也可以?次性的全部推送到遠端:

git push origin --tags

如果標簽已經推送到遠程,要刪除遠程標簽就?煩?點,先從本地刪除,然后,從遠程刪除。刪除命令也是push,但是格式如下:

在碼云上查看確實刪除成功:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90812.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90812.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90812.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle大表數據清理優化與注意事項詳解

一、性能優化策略 1. 批量處理優化批量大小選擇&#xff1a; 小批量(1,000-10,000行)&#xff1a;減少UNDO生成&#xff0c;但需要更多提交次數中批量(10,000-100,000行)&#xff1a;平衡性能與資源消耗大批量(100,000行)&#xff1a;適合高配置環境&#xff0c;但需監控資源使…

Anaconda及Conda介紹及使用

文章目錄Anaconda簡介為什么選擇 Anaconda&#xff1f;Anaconda 安裝Win 平臺macOS 平臺Linux 平臺Anaconda 界面使用Conda簡介Conda下載安裝conda 命令環境管理包管理其他常用命令Jupyter Notebook&#xff08;可選&#xff09;Anaconda簡介 Anaconda 是一個數據科學和機器學…

外包干了一周,技術明顯退步

我是一名本科生&#xff0c;自2019年起&#xff0c;我便在南京某軟件公司擔任功能測試的工作。這份工作雖然穩定&#xff0c;但日復一日的重復性工作讓我逐漸陷入了舒適區&#xff0c;失去了前進的動力。兩年的時光匆匆流逝&#xff0c;我卻在原地踏步&#xff0c;技術沒有絲毫…

【QT】多線程相關教程

一、核心概念與 Qt 線程模型 1.線程與進程的區別: 線程是程序執行的最小單元&#xff0c;進程是資源分配的最小單元&#xff0c;線程共享進程的內存空間(堆&#xff0c;全局變量等)&#xff0c;而進程擁有獨立的內存空間。Qt線程只要關注同一進程內的并發。 2.為什么使用多線程…

VS 版本更新git安全保護問題的解決

問題&#xff1a;我可能移動了一個VS C# 項目&#xff0c;然后&#xff0c;發現里面的git版本檢測不能用了 正在打開存儲庫: X:\Prj_C#\3D fatal: detected dubious ownership in repository at X:/Prj_C#/3DSnapCatch X:/Prj_C#/3D is owned by:S-1-5-32-544 but the current …

Git常用命令一覽

Git 是基于 Linux內核開發的版本控制工具。與常用的版本控制工具 CVS, Subversion 等不同&#xff0c;它采用了分布式版本庫的方式&#xff0c;不必服務器端軟件支持&#xff08;ps&#xff1a;這得分是用什么樣的服務端&#xff0c;使用http協議或者git協議等不太一樣。并且在…

基于 JSON 文件定位圖片缺陷點并保存

基于JSON的圖片缺陷處理流程 ├── 1. 輸入檢查 │ ├── 驗證圖片文件是否存在 │ └── 驗證JSON文件是否存在 │ ├── 2. 數據加載 │ ├── 打開并加載圖片 │ └── 讀取并解析JSON文件 │ ├── 3. 缺陷信息提取 │ ├── 檢查JSON中是否存在shapes字…

Redis基礎學習(五大值數據類型的常用操作命令)

目錄 一、Redis基本知識與Redis鍵&#xff08;key&#xff09;常用操作命令。 二、Redis的五大值的數據類型。&#xff08;value&#xff09; 三、Redis關于鍵&#xff08;key&#xff09;的值常用操作指令表格統計。 &#xff08;1&#xff09;字符串&#xff08;String&#…

Ubuntu——辦公軟件 LibreOffice 安裝與使用指南

十四、LibreOffice 安裝與使用1、核心組件組件????圖標????對應MS Office????核心功能定位????Writer??&#x1f4dd;Word專業文檔處理與排版??Calc??&#x1f4ca;Excel數據計算與分析??Impress??&#x1f3ac;PowerPoint演示文稿制作??Draw??&…

Securecrt丟失tab以及終端重新配色

今天在使用 Securecrt 的時候&#xff0c;發現 Securecrt 的 tab 標簽消失不見了&#xff0c;仔細回想起來&#xff0c;應該是上一次誤按了 alt enter 最大化&#xff0c;然后導致配置丟失的問題 還有表現就是菜單中的 Session Tabs 無論勾選還是不勾選都沒有任何變化&#xf…

frp搭建內網穿透教程

frp搭建內網穿透教程 步驟1&#xff1a;準備工作 公網服務器&#xff1a;需要一臺具有公網IP的服務器作為中轉服務器&#xff0c;安裝frp服務器端&#xff08;frps&#xff09;。內網設備&#xff1a;需要暴露服務的內網設備&#xff0c;安裝frp客戶端&#xff08;frpc&#xf…

【JavaEE進階】圖書管理系統(未完待續)

目錄 用戶登錄 添加圖書 圖書列表 修改圖書 刪除圖書 批量刪除 攔截器 &#x1f343;前言 什么是攔截器? 攔截器的基本使用 自定義攔截器 注冊配置攔截器 攔截路徑 攔截器執行流程 項目實現統一攔截 定義攔截器 注冊配置攔截器 前?圖書管理系統, 咱們只完成了??登錄和圖書列…

基于同花順API的熊市與牛市識別模型開發及因子分析

基于同花順API的熊市與牛市識別模型開發及因子分析 1. 引言 1.1 研究背景與意義 金融市場中的牛市與熊市識別一直是投資者和研究人員關注的重點問題。牛市(Bull Market)通常指價格持續上漲的市場環境,投資者信心充足,交易活躍;而熊市(Bear Market)則指價格持續下跌的市場…

AMD 銳龍 AI MAX+ 395 處理器與端側 AI 部署的行業實踐

2025 年 7 月 10 日&#xff0c;AMD 在深圳召開 Mini AI 工作站行業解決方案峰會&#xff0c;正式發布基于銳龍 AI MAX 395 處理器的端側 AI 部署方案&#xff0c;與 200 余家生態伙伴共同探討 AI 技術在千行百業的落地路徑。這一硬件平臺通過異構計算架構與開放生態設計&#…

期權盤位是什么意思?

本文主要介紹期權盤位是什么意思&#xff1f;“期權盤位”并非金融交易中的標準術語&#xff0c;可能是口語化表達或對某些概念的簡化描述。期權盤位是什么意思&#xff1f;1. 期權盤口的“價位”&#xff08;買賣報價位置&#xff09;在期權交易中&#xff0c;“盤口”通常指實…

【Trea】Trea國內版|國際版|海外版下載|Mac版|Windows版|Linux下載配置教程

【Trea】Trea國內版&#xff5c;國際版&#xff5c;海外版下載&#xff5c;Mac版&#xff5c;Windows版下載配置教程 本文適用讀者&#xff1a; 想要第一次安裝 Trea需要在 Windows 或 macOS 上完成環境配置想深入了解 Doubao、DeepSeek、ChatGPT、Claude 等模型在 Trea 中的接…

MyBatis實現分頁查詢-蒼穹外賣筆記

首先分頁查詢的原理是SQL的limit關鍵字。LIMIT 子句用于限制 SQL 查詢返回的記錄數。它接受一個或兩個整數參數&#xff0c;第一個參數表示偏移量&#xff0c;第二個參數表示返回的最大記錄數。我們完全可以使用前端傳給我們的page,pageSize,自己去計算limit的參數&#xff0c;…

系統性能評估方法深度解析:從經典到現代

評估本質&#xff1a;系統性能評估是通過量化分析衡量計算機系統在特定工作負載下的表現能力&#xff0c;核心目標是建立可比較的性能基準&#xff0c;為系統設計、選型和優化提供科學依據。一、評估方法分類體系 #mermaid-svg-0ceD4AA2KDwzwtb6 {font-family:"trebuchet …

WebSocket實現多人實時在線聊天

最近公司在做一個婚戀app&#xff0c;需要增加一個功能&#xff0c;實現多人實時在線聊天。基于WebSocket在Springboot中的使用&#xff0c;前端使用vue開發。 一&#xff1a;后端 1. 引入 websocket 的 maven 依賴 <dependency><groupId>org.springframework.bo…

學習筆記隨記-FPGA/硬件加速

一、FPGA&#xff1a;Field Programmable Gate Array 現場可編程門陣列 可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源、底層嵌入功能單元和內嵌專用硬核。 可編程輸入/輸出單元&#xff08;I/O&#xff09;單元 輸入/輸出&#xff08;Input/Ouput&…