教會舍友玩 Git (再也不用擔心他的學習)


舍友長大想當程序員,我和他爺爺奶奶都可高興了,寫他最喜歡的喜之郎牌Git文章,學完以后,再也不用擔心舍友的學習了(狗頭)哪里不會寫哪里 ~~~

一 先來聊一聊

太多東西屬於,總在用,但是一直都沒整理的東西了,從剛接觸編程那會,就學着各種教程的進行 ”點擊“ ,”輸入“,Git 也算一個老生常談的內容,想用好也沒那么容易,這一篇從前因,以及下載安裝、配置,以及實際的上手方式,整理了出來,不過還是要說,這一篇適合沒接觸過 Git ,以及 Git 運用不是很熟練的朋友,我用了大量的文字以及圖片進行了說明,有些朋友可能會感覺頭暈哈哈哈,我感覺,看完起碼對於一個新手朋友來說還是有一定幫助的。

不過想進階,以及想看大量命令的朋友就不太適合了,畢竟這是一篇類似保姆級的入門文章

有需要可以看一下這一篇喔,最近推薦蠻多的一篇 ~

「一勞永逸」一張腦圖帶你掌握Git命令 By:TianTianUp

https://juejin.im/post/6869519303864123399

(1) 為什么要用版本控制?

不管是學生時期,亦或者工作了,有時候免不了需要寫一些文檔,例如你交一份報告給你的指導老師, 最終通過的報告,總是在不斷溝通與修改中完成的,例如 V1、V3、V5 是傳給老師的版本,老師標注錯誤后會回退給我一個偶數的版本,即 V2、V4、V6,這就是版本的一個通俗的概念

而在開發的過程中,隨着開發進度的進行,軟件的版本也同樣需要不斷的進行迭代,不管你的代碼迭代只進行在你本地,亦或者特定的服務器上,如果按照剛才提交報告的形式進行迭代,就會出現一個問題:即每一個版本中大量代碼是重復的

那再想想辦法,使用最新的內容替換掉原先舊的版本,或者只保留最新版本以及最新版的前一個版本

但是新問題又出現了:代碼重復確實少了,但是如果多個人同時修改,編輯這個文件,更會出現更多沖突與問題

要考慮的東西太多了,有沒有一種比較東西可以幫助我們呢?

這就是版本控制這個概念以及相關技術出現的一種原因了

(3) 版本控制簡介

版本控制最主要的功能就是追蹤文件的變更。它將什么時候、什么人更改了文件的什么內容等信息忠實地了記錄下來。每一次文件的改變,文件的版本號都將增加。除了記錄版本變更外,版本控制的另一個重要功能是並行開發。軟件開發往往是多人協同作業,版本控制可以有效地解決版本的同步以及不同開發者之間的開發通信問題,提高協同開發的效率。並行開發中最常見的不同版本軟件的錯誤(Bug)修正問題也可以通過版本控制中分支與合並的方法有效地解決。

所以,需要對內容版本迭代進行管理,以及多人協作時一定需要使用版本控制

(二) 版本控制軟件

工欲利其事必先利其器,有這種需求,自然也不用擔心,沒這種產品,目前常見的版本控制產品很多,不過作為一名開發人員,其實聽到最多的還是 Git 和 SVN,來看看區別

(1) 集中版本控制:SVN

SVN是集中式版本控制系統,也就是說,所有版本的數據都是存放在服務器上的,每次要做什么事情,每個人都是使用自己的電腦,去向中央服務器進行拉取最新的版本內容,完事后再推回去新版本,但是這個行為需要聯網的支持,沒有網絡的情況下,用戶只能看到本地以前同步過的內容,無法查看歷史版本,這種方式,會受到網絡,以及服務器損壞導致數據丟失的掣肘

(2) 分布式版本控制:Git

Git 大家應該很熟悉了,或多或者也都有用過,還有馬上能聯想到的 GitHub、GitLab、Gitee

Git是分布式版本控制系統,換句話說,它沒有像 SVN 那樣的中央服務器,它最大的特點就是所有版本信息倉庫都會同步到每個用戶的電腦中,這樣每個人即使在本地也可以查看所有歷史的版本,沒有聯網的情況,也可以在本地的倉庫提交,聯網時 push 即可,一定程度上解決了前面 SVN 遇到的一些問題

(三) Git 歷史

感興趣的簡單看看就行了,直接貼的,略過也行

同生活中的許多偉大事件一樣,Git 誕生於一個極富紛爭大舉創新的年代。Linux 內核開源項目有着為數眾廣的參與者。絕大多數的 Linux 內核維護工作都花在了提交補丁和保存歸檔的繁瑣事務上(1991-2002年間)。到 2002 年,整個項目組開始啟用分布式版本控制系統 BitKeeper 來管理和維護代碼。

到 2005 年的時候,開發 BitKeeper 的商業公司同 Linux 內核開源社區的合作關系結束,他們收回了免費使用 BitKeeper 的權力。這就迫使 Linux 開源社區(特別是 Linux的締造者 Linus Torvalds )不得不吸取教訓,只有開發一套屬於自己的版本控制系統才不至於重蹈覆轍。他們對新的系統訂了若干目標:

  • 速度

  • 簡單的設計

  • 對非線性開發模式的強力支持(允許上千個並行開發的分支)

  • 完全分布式

  • 有能力高效管理類似 Linux 內核一樣的超大規模項目(速度和數據量)

二 下載安裝 Git

我這邊本來就裝着一個舊版本的 Git,為了演示截圖,重新裝一下,卸載很簡單,只需要把環境變量給清了,然后安裝目錄或者控制面板刪除就行了

(一) 下載

下載先考慮的當然是官網:https://git-scm.com/

直接點擊右下角的 Download,跳轉后選擇適合自己的系統版本就行了

不過官網下載畢竟還有個牆的問題,要么一直轉圈,要么就下載極其緩慢

那么淘寶鏡像下載地址就又來了:http://npm.taobao.org/mirrors/git-for-windows/

  • 選擇版本,例如:v2.28.0.windows.1
  • 選擇適合自己系統文件:例如:Git-2.28.0-64-bit.exe

下圖為淘寶鏡像中選擇版本圖

(二) 安裝

點擊下載好的安裝程序,剛打開就是一個許可聲明,直接下一步就行了,接着就是選擇安裝路徑,選擇一個適合的安裝位置

首先選擇要安裝的組件,保持默認即可,沒勾選的內容,是關於是否在桌面創建快捷方式,以及是否在控制台中使用 TrueType 字體以及是否每天檢查 Git (Windows)更新的

這一步是選擇開始菜單的文件夾名稱,直接下一步

這一步用來選擇 Git 默認的編輯器,默認是 Vim 選擇自己用的例如 sublime 、vs code 都可以,這個地方用的不是太多,用默認倒也可以

這一項選擇第二個

選擇 HTTPS 的后端傳輸,選擇第一項 OpenSSL 庫

這是用來配置行尾符號裝換的,在 Win 上我們一般推薦使用第一個選項

這里就是用來配置你最后使用 Git Bash 的時候,是使用MinTTY(MSYS2的默認終端)還是 Win 默認的 cmd.exe,但是使用前者可以調整大小窗口,以及使用Unicode字體等特點,后者在某些方面有一些掣肘,所以我們選擇第一項

關於 pull 時候的處理,選擇默認即可,pull 后面會講

這里選擇第二個選項,即 "啟用Git憑證管理器" Windows的 Git 憑證管理器為 Windows 提供安全的Git 憑證存儲

下面的第一個選項是 "啟用文件系統緩存",文件系統數據將被批量讀取並緩存在內存中用於某些操作(“core.fscache”設置為“true”),這提供了顯著的性能提升。

第二個選項是 "啟用符號鏈接",啟用符號鏈接(需要SeCreateSymbolicLink權限),不過,現有存儲庫不受此設置的影響

所以選擇第一項即可

這一項不勾選,是一些額外的支持,不一定用得到,且看提示尚存未知 bug

直接點擊安裝就可以了

(三) 驗證安裝

安裝后,首先開始菜單中會有提示最近添加的內容,同時在任意文件夾下右鍵也會多出兩個選項,Git GUI Here、Git Bash Here,同時它會默認幫我們配置環境變量

例如我右鍵點擊 Git Bash Here,就會彈出,同時輸入一些基本命令后,也是有反應的

Git Bash:Unix 與 Linux 風格的命令行,這是一般最常用的

Git CMD:Windows風格的命令行(長得就和 cmd 差不多)

Git GUI:圖形界面的Git,不建議入門學習使用,學習還是以學習命令為主,在考慮圖形界面

說明一下:使用 git 會涉及到一些常見的 Linux 命令,不過因為使用者是基於像 Windows 這樣擁有圖形界面的系統,所以也不用每次使用都通過 cd ,直接通過文件夾,右鍵點開也是可以的,不過Linux 常見的命令還不會的話,建議還是先看一下 Linux 的入門語法

我好像以前寫過一篇,Linux 的安裝還有詳細入門命令的文章,有興趣可以看一下,想了解更多,可以去度娘一下或者找個教程系統學一下

三 Git 配置和基本理論

(一) 配置

Git 有兩種配置文件,一種是系統級別的配置文件,還有一種是用戶級別的配置文件,且這兩者都存儲在本地上,先看一下如何顯示所有配置文件內容(注:下面是小寫 L 不是數字1或者 大寫 i)

git config -l

上述就是雜糅在一起的內容,都查出來了,如果想要分別查看不同的配置文件,也是有辦法的

# 查看系統配置
git config --system --list
  
# 查看當前用戶配置
git config --global  --list

這里大家可以分別嘗試一下

配置都是存在本地的,那么文件的位置在哪里呢?

  • 系統配置:XXX\Git\etc\gitconfig 例如 D:\develop\Git\etc\gitconfig

  • 用戶配置:C:\Users\用戶名\ .gitconfig

    • 注意:別忘記顯示文件夾中的隱藏文件,否則看不到 .gitconfig

如果是第一次使用,應該是沒有 .gitconfig ,以前如果用過,或者折騰過例如 hexo 等內容,應該都是配過的,例如我這台機器的 .gitconfig 中的內容如下:

[user]
	name = ideal-20
	email = ideal_bwh@163.com
[i18n]
	commitencoding = utf-8
	logoutputencoding = utf-8
[gui]
	encoding = utf-8

我在其中配置定義了一個 user ,寫入了我的 name 和 email, 這個工作還是非常推薦做的,因為你后面提交內容的時候,就會默認的使用配置,不用填寫了

上面是直接修改文件的方式,如果想要使用 git 命令配置,則如下:

git config --global user.name "ideal"  #名稱
git config --global user.email ideal_bwh@163.com   #郵箱

其他的一些編碼配置,可以后面根據需要配置也可以

小結:要認識基本配置,最好配置用戶名和郵箱作為你這個用戶的標識,命令中如果傳入 --global 也就是告訴 Git 每次默認都用這個內容代表你這個用戶,如果你在某個項目中不想使用這個標識,你可以在項目中再次執行此語句,但是不傳入 --global 就可以了

(二) 基本理論

(1) Git 工作區域

工作區域這個概念是非常重要的,要留心一下

你想從本地上傳一份代碼到 github,不同的階段下,你想上傳的內容,會處於不同的位置區域中,Git 的工作區域就分為四大塊

  • 工作區(Workspace / Working Directory)

  • 暫存區(Stage / Index)

  • 本地倉庫(Git Directory / Repository)

  • 遠程倉庫(Remote Directory / Remote)

工作區:本地項目文件存放位置,也就是你放這個項目代碼的地方

暫存區:暫存字面意思就是臨時存放的意思,這里用來臨時存放你的改動,雖然叫做 XX區 ,但是本質上只是一個文件,其中記錄了文件的名稱、時間戳、長度等內容

本地倉庫:暫存區的內容可以通過命令提交到本地倉庫,所以它存放你提交所有提交版本的數據

遠程倉庫:用來托管代碼的遠程服務器,供使用者拉取等操作

若僅僅從使用的角度出發,其實我們更需要關注的點在於工作區和遠程倉庫

雖然到現在,可能對於幾大工作區域還是有點懵,不過稍后提到他們之間的關系,以及一些講解命令,變更當前欲提交代碼位置的時候,就會明白了

(2) Git 流程 / 區域間關系

上面書寫幾個區域流程的時候,其實已經是按照一定的順序來寫了

Git 工作時執行的流程如下:

  • 先在工作區中添加或者修改一些文件,說白了就是寫完代碼,或者修改了舊代碼
  • 將需要最終提交到 Git 管理的文件存放入暫存區
  • 暫存區中的文件提交到本地倉庫中
  • 本地倉庫中的修改推送到遠程倉庫

上面我們介紹的流程,就是圖中從 add 到 commit 到 push 的一個過程,也就是從工作目錄到遠程倉庫的一個過程

上面的一些內容,就是關於項目從雲端拽到本地等等,下面這些命令我們都會提到

下面手把書開始進行 Git 項目的創建,以及如何上傳以及拉取項目

(三) 創建/克隆倉庫

如果你想要在本地上生成一個倉庫,要么就是直接創建一個新的本地倉庫,要么就是從雲端可克隆一個遠程倉庫

(1) 本地倉庫的創建

在當前的目錄下了,初始化一個新的倉庫

git init

例如我在桌面的 git-stuty 文件夾中打開 git-bash

它會提示初始化了一個空的 Git 倉庫在你這個路徑下,同時可以在這個文件夾中,直接看到有一個名為:.git 的文件夾出現,默認會有一些初始化的文件在其中

(2) 遠程倉庫的克隆

第二個方法就是直接克隆遠程項目,命令為

git clone [url]

其中的 [url] 部分直接替換成在 Github 或者 Gitee 等上面拿到的克隆地址,Github 實例如下

怎么選擇呢? 一般來說,如果我們是一個全新的項目或者說一個Demo想要上傳到 Github 等這種平台,就需要在項目目錄下創建一個 Git 倉庫,而如果你想看別人的項目,就直接克隆下來,或者你在別的電腦上想要繼續寫自己的一個遠程存儲的項目,你也可以克隆下來

通常一種做法就是,先在遠程創建倉庫,然后拉取到本地來做

(四) 文件狀態及忽略文件

(1) 文件狀態

等下我們會帶着大家走一遍實操流程,但是我們還需要補充兩個點,因為后面我們實操會用到

  • Untracked:未跟蹤狀態,此文件還在你的項目文件夾中,但是還沒添加到 Git 倉庫中,所以還不受到版本控制,例如編寫一個 HelloWorld.java 文件,但是還沒做什么操作,只有這么一個文件而已
    • 最后通過 git add 命令后,狀態變為 Staged
  • Staged:暫存狀態,但還沒有真正入庫
    • 執行 git commit 命令后,會把你修改的內容,和本地倉庫中進行同步,同步后,這時本地倉庫中的文件和本地文件又變為一致, 文件就會變成 Unmodify 狀態
    • 如果想執行取消這種暫存狀態,只需要執行 git reset HEAD filename 命令取消暫存, 文件狀態會為 Modified
  • Unmodify:文件已入庫,同時版本庫(.git )中的文件快照內容與文件夾中完全一致
    • 如果它被修改, 而變為 Modified, 如果使用 git rm 移出版本庫, 則成為 Untracked 文件
  • Modified: 文件已修改,不過僅僅是修改,沒有進行其他的操作
    • git add 可進入暫存 Staged 狀態, 使用 git checkout 則丟棄修改過, 返回到 unmodify狀態, 這個git checkout即從庫中取出文件, 覆蓋當前修改

(2) 忽略文件

這塊內容,在 IDEA 中應該都有見過,即:.gitignore 文件,其中的內容,就是我們選擇要進行忽略的文件,也就是說,這些東西,我們不想納入版本控制中,例如 sql 文件,或者一些臨時文件,直接貼了一份規則

說明:這一塊,沒仔細整理,或許是有出入的,想深入了解,更推薦去找一份專題的博文

  • 忽略文件中的空行或以井號(#)開始的行將會被忽略。

  • 可以使用Linux通配符。例如:星號(*)代表任意多個字符,問號(?)代表一個字符,方括號([abc])代表可選字符范圍,大括號({string1,string2,...})代表可選的字符串等。

  • 如果名稱的最前面有一個感嘆號(!),表示例外規則,將不被忽略。

  • 如果名稱的最前面是一個路徑分隔符(/),表示要忽略的文件在此目錄下,而子目錄中的文件不忽略。

  • 如果名稱的最后面是一個路徑分隔符(/),例如 file/ 表示忽略目錄file下的全部內容,不管是根目錄下的/file/目錄,還是某個子目錄/child/file/目錄,都會被忽略

舉個例子:

*.class

#package file

*.war
*.ear

#kdiff3 ignore
*.orig

#maven ignore
target/

#eclipse ignore
.settings/
.project
.classpatch

#idea
.idea/
/idea/
*.ipr
*.iml
*.iws

# temp file

*.log
*.cache
*.diff
*.patch
*.tmp

# system ignore
.DS_Store
Thumbs.db

四 手把手使用 Git

前面該鋪墊的內容基本都扯到了,下面手把手試一試,分為兩種方式,一種是直接使用命令行,一種就是在 IDEA 中使用圖形界面

要說明一下,命令行的方式,並不是僅僅只能在文件夾中使用,更多的情況下,我們一般會把 IDEA 的 terminal 配置我們的 git-bash,這樣,我們在 IDEA 中,編寫或者修改代碼后,就可以直接通過 Git 命令進行提交,我們下面演示的兩種方式也都是基於 IDEA 的

(一) 使用 GitHub/碼雲

不管怎么樣,一個 Git 代碼托管平台的賬號總是要有的,針對個人來說用的比較多的,還是 GitHub,當然國內的碼雲(Gitee),勝在速度快,GitHub或許就需要使用一些科學的上網方式才能有比較好的速度體驗了,還有一個就是 GitHub 是全英文的,后者則為中文

沒有賬號的小伙伴,注冊一個就好了,下面為了照顧所有童鞋,順便提一下配置 SSH 公鑰

說明:為了快一點,我使用碼雲來進行演示,GitHub 同理

配置 SSH 公鑰,也就是可以幫助我們實現免密碼登錄,否則,我們每一次和遠程倉庫進行一些操作,都需要輸入賬號密碼

  • 進入 C:\Users\用戶名\.ssh 目錄下
    • 如果沒有用過 ssh 這里是沒有內容的,需要生成
ssh-keygen -t rsa

ssh-keygen 就是生成公鑰的命令,后面是指定了加密方式,一般這樣寫就可以

執行后,控制台會顯示一些不規則的圖畫,接着文件夾中會生成兩個文件

  • id_rsa.pub 和 id_rsa

帶有 pub 后綴的就是代表公鑰,另一個就是私鑰

用編輯器打開公鑰代碼,全部復制,接着打開碼雲中安全設置中的的 SSH 公鑰配置,將公鑰復制進去,它會默認填充標題,這樣就好了

使用SSH公鑰可以讓你在你的電腦和碼雲通訊的時候使用安全連接(Git的Remote要使用SSH地址)

(二) 修改 IDEA Terminal

可以直接在 Idea 里的Terminal里面進行 git命令的輸入,當然需要把原先的 cmd 修改為 Git 下的 bash,注意:不要設置為 git-bash 否則只能彈窗使用

做完也可以順便創建一個 readme文件:$ touch README.md 不過無所謂啦,一般直接在 GitHub 等上也能直接生成

(三) 向遠程倉庫提交代碼(命令方式)

說明:我把我這邊的執行結果也貼上了,本質命令也就那么幾句

1、創建項目,或打開欲上傳項目

2、在下方 Terminal 中執行 git init 進行空倉庫的初始化,如下(別復制 $ 符號啊):

abc@LAPTOP-5T03DV1G MINGW64 /f/develop/IdeaProjects/temp/git-study (master)
$ git init
Initialized empty Git repository in F:/develop/IdeaProjects/temp/git-study/.git/

3、可以使用 git status 查看當前的狀態,可以看到,可以看到當前還沒提交

abc@LAPTOP-5T03DV1G MINGW64 /f/develop/IdeaProjects/temp/git-study (master)
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore
        .mvn/
        mvnw
        mvnw.cmd
        pom.xml
        src/

nothing added to commit but untracked files present (use "git add" to track)

4、使用 git add . 將所有添加或者修改過的文件添加到暫存區

abc@LAPTOP-5T03DV1G MINGW64 /f/develop/IdeaProjects/temp/git-study (master)
$ git add .
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory
..... 省略

5、add 后可以繼續使用 git status 查看當前的狀態,可以看到,一下這些文件就是被添加到暫存區的

abc@LAPTOP-5T03DV1G MINGW64 /f/develop/IdeaProjects/temp/git-study (master)
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   .gitignore
        new file:   .mvn/wrapper/MavenWrapperDownloader.java
        new file:   .mvn/wrapper/maven-wrapper.jar
        new file:   .mvn/wrapper/maven-wrapper.properties
        new file:   mvnw
        new file:   mvnw.cmd
        new file:   pom.xml
        new file:   src/main/java/cn/ideal/DemoController.java
        new file:   src/main/java/cn/ideal/gitstudy/GitStudyApplication.java
        new file:   src/main/resources/application.properties
        new file:   src/test/java/cn/ideal/gitstudy/GitStudyApplicationTests.java

6、使用 git commit -m "提交信息" 提交暫存區中的內容到本地倉庫 -m 提交信息

這個提交信息,就是你會在遠程倉庫中每次看到的提交信息,例如:

abc@LAPTOP-5T03DV1G MINGW64 /f/develop/IdeaProjects/temp/git-study (master)
$ git commit -m "first commit"
[master (root-commit) 4c9acbe] first commit
 11 files changed, 735 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 .mvn/wrapper/MavenWrapperDownloader.java
 create mode 100644 .mvn/wrapper/maven-wrapper.jar
 create mode 100644 .mvn/wrapper/maven-wrapper.properties
 create mode 100644 mvnw
 create mode 100644 mvnw.cmd
 create mode 100644 pom.xml
 create mode 100644 src/main/java/cn/ideal/DemoController.java
 create mode 100644 src/main/java/cn/ideal/gitstudy/GitStudyApplication.java
 create mode 100644 src/main/resources/application.properties
 create mode 100644 src/test/java/cn/ideal/gitstudy/GitStudyApplicationTests.java

7、像遠程 add git remote add origin 遠程倉庫地址

abc@LAPTOP-5T03DV1G MINGW64 /f/develop/IdeaProjects/temp/git-study (master)
$ git remote add origin git@gitee.com:ideal-20/git-study.git

8、由於是第一次提交,所以需要先將遠程倉庫的內容拉取下來,直接 push會報錯,執行:git pull

9、提交上去:$ git push -u -f origin master 注意:-f 是強制提交,因為可能咱們第一次拉取過后會出現 項目沒有剛才拉取到的新的錯誤,以后不加 -f

效果如下:

(四) 向遠程倉庫提交代碼(圖形界面方式)

1、首先在左側目錄結構中,右鍵點擊項目名,選擇 Git Add

2、接着再次點擊右鍵項目名,這次選擇 Commit Directory

這個界面,會顯示變更的文件,以及讓你輸入需要上傳的提交信息,如果你之前已經配置過用戶級別的配置信息,不填寫個人信息也行,下面是代碼的比對,右側默認勾着一些檢查的勾選,會增加一些時間,也可以全部取消勾選

3、在上方菜單欄中有一項叫做 VCS ,點擊后 選擇 Git 然后選擇 Push

4、然后看到了我們剛才 commit 的內容,選擇直接 Push

5、去倉庫看一下,仍然上傳成功了

(五) 補充方式

剛才命令行的方式,我們是在我們創建好的本地 Java 項目中初始化 Git 本地倉庫,然后提交到遠程倉庫,還有一種方式,就是直接克隆遠程的空倉庫下來,例如克隆下一個名為 test 的文件夾,其中含有例如 .git .gitignore 等文件或文件夾,然后將這些內容全部復制到你的 Java 項目的根目錄下也是可以的

五 分支開發

分支就是指,例如多人開發中,1.0 的版本后,可能會同時開發其他多個版本,就需要的分支的概念,還例如,你在項目中對於一個問題的解決方案還不能保證完美,但你又不想影響正常的內容,所以,你可以在分支上進行開發,而不影響主干

所以為了不影響別人開發以及主干的穩定,所以你可以創建一個屬於自己的分支,保證分支上沒有問題了,再合並到主干上

1、在master上創建分支 v1.0:$ git checkout -b v1.0 origin/master 並且默認使用它

2、將分支推到遠程倉庫:$ git push origin HEAD -u

這樣我們的遠程倉庫中就會多出一個分支 v1.0

3、給這個分支提交一個內容,信息為第三次提交

abc@LAPTOP-5T03DV1G MINGW64 /f/develop/IdeaProjects/temp/git-study (v1.0)
$ git add .
xxx
$ git commit -m "第三次提交"
xxx
$ git push
xxx

4、准備向 master 主干合並這個 v1.0,先切換到 master git checkout master

abc@LAPTOP-5T03DV1G MINGW64 /f/develop/IdeaProjects/temp/git-study (v1.0)
$ git checkout master

5、將 v1.0 並入 master,注意,現在已經是在 master下操作了哦

abc@LAPTOP-5T03DV1G MINGW64 /f/develop/IdeaProjects/temp/git-study (master)
$ git merge v1.0

6、Push 上去,origin master 不寫也行,默認就是 master

abc@LAPTOP-5T03DV1G MINGW64 /f/develop/IdeaProjects/temp/git-study (master)
$ git push origin master

你就會發現,master 主干下已經並入了 v1.0 的內容

說明:提交信息,出現一個小亂碼,是編碼沒設置好,沒設置的情況下,還是推薦使用英文提示信息,修改后再根據需要選擇是否提交中文信息

六 結尾

如果文章中有什么不足,歡迎大家留言交流,感謝朋友們的支持!

如果能幫到你的話,那就來關注我吧!如果您更喜歡微信文章的閱讀方式,可以關注我的公眾號

在這里的我們素不相識,卻都在為了自己的夢而努力 ❤

一個堅持推送原創開發技術文章的公眾號:理想二旬不止


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM