一、前言
- 為什么要學Git?
Git,誕生於Linux之神Linus Torvalds之手,是一個開源的分布式管理系統,而且可以說是世界上最先進的(之一)(也許)。
它具體有什么作用呢?
- 想刪除一段代碼,但害怕以后找不回來,怎么辦?——沒關系,Git來幫你記錄。
- 別人修改了代碼,我不知道他改了啥,怎么辦?——沒關系,Git上都可以留有痕跡。
- 我想讓大佬幫我改改代碼,結果大佬改完了我還得手動合並,累死了,有啥辦法嘛?——沒關系,Git來幫你自動合並。
- 我這軟件的最新版本有BUG,想回退,咋整?——沒關系,有Git,包您滿意。
Git,就是這么一個小巧,開源,能讓代碼分布在每一個開發者的電腦上,能記錄並完成每一次修改的先進工具,是多人協作開發(沒錯我說的就是雛燕計划)的好伙伴。
So,咱還不趕快開始學習起來?讓Git消去多人協作開發時出現的一切煩惱?
二、學習前准備
- 安裝
Mac:
如果您是高貴的Mac用戶,那太棒了!90%的情況下,你都不需要學會如何安裝這個玩意——咱系統里自帶着!
但如果庫克沒有給您高貴的電腦預裝Git,那也不要灰心,打開終端窗口,輸入以下命令:
https://git-scm.com/downloads
然后,為了檢查是否安裝完成,您還需要輸入以下命令:
git --version
如果輸出了Git的版本信息,沒有報錯,恭喜您!安裝成功了!
Liunx:
用liunx的大佬肯定完全不需要以下提示信息
拜托,Git是Liunx之父開發的誒,安裝不是so easy?
打開你的Liunx終端,輸入以下命令
sudo apt-get install git
靜靜等待,然后就大功告成咯!
想用Liunx來體驗Git的同學(我也強烈推薦大家在Win10下使用Liunx子系統來完成Git的操作,簡單,還可以學到Liunx操作知識,豈不美哉?)
可以移步閱讀以下文章(13條消息) 從零開始系列(三):Windows10安裝Linux子系統(WSL教程)_夏天的愛人是綠色的博客-CSDN博客
Windows:
知道你們會直接跳來看這個了,這才是人民群眾的大多數選擇啊!(認真臉
First of all,那當然是要打開你親愛的百度,找到Git的官方網站,點進去,進入Download選項卡,單擊Download for Windows,
出現這個,應該就下載成功咯!(如果沒下載成功點那個download manually就好)
下載好,安裝完,我們就可以開始我們的教程啦!
三、新建Git倉庫並提交我們的第一個README.md文檔
好了,是時候建立我們的第一個倉庫了!
去可愛的Windows菜單那里,找到Git文件夾,打開里面的Git Bash(Liunx或Mac的話直接打開你們的終端就行)
這就是我們的工作窗口啦!窗口的標題寫着當前所在的目錄。
我可不想往我的C盤里塞Git倉庫,到時候把我C盤塞得滿滿當當,還不好找,怎么破?
別急,我們來學習在命令行窗口下,對文件系統進行訪問/操作的幾個命令吧!
mkdir 文件名
作用:在當前目錄下新建名字為”文件名“的文件夾
cd 目錄路徑
作用:前往某個路徑 cd ../為回退到上級文件夾,cd bash為進入當前目錄下的文件夾
ls
作用:查看當前文件夾下有哪些文件
pwd
作用:顯示當前路徑
那么,咱們來實操一下,如何在D盤新建一個gitLearn文件夾,並進入該文件夾吧!
答案如下:
既然來到了新文件夾,那就讓我們開始新建屬於我們自己的倉庫吧!在窗口里敲入以下命令:
git init
大功告成!
新建README.md
當然,咱可以不用跟自己過不去,用Windows的圖形化界面,直接到指定位置新建一個README.md文件,用寫字板輸入就好。
但是,由於教學需要裝B,我們可以換一種方式,再教大家兩個命令:
echo “你想輸入的內容”>>文件名
作用:將雙引號內的內容輸送到對應文件里
cat 文件名
作用:讀取文件內容並打印在命令行窗口上
我們來新建一個README.md,往里面輸入Hello Git,作為我們添加到Git倉庫的第一個文件吧!
然后,我再介紹幾條接下來要用到的命令:
git status
作用:查看Git倉庫情況
git add 文件名
作用:將文件添加到git倉庫的緩沖區里
git commit -m”對於修改的描述“
作用:將緩沖區的修改提交
咱先敲一下git status,查看一下當前倉庫情況:
呀,README.md被標紅了!
標紅意思是,README.md文件剛剛被修改過,或者剛剛被新建,即之前不存在倉庫里/存在的不是這一個版本。
咱們把它add進去后再查看一下狀態:
好了,現在變成綠色了,我們就可以commit,完成我們的第一步咯!
四、對倉庫里的文件進行修改
想修改剛剛寫好的README.md,怎么辦?
沒事,就像剛剛說的那樣,修改之后,add進去,在commit第二次就好,我就直接甩出操作流程了:
五、將文件上傳到遠程倉庫
誒,這講了半天,我也沒看到怎么進行多人協作啊?
別急,這就開始第一步:把咱的Git庫推送到遠程倉庫上!
因為一些你知我知的原因,我就用Gitee進行展示了,GitHub也是類似的,請各位用GitHub的童鞋莫慌。
在這之前,我們需要先獲取一些東西。
很顯然,我們不希望讓別人隨意上傳/更改我們的遠程倉庫。那怎么讓遠程倉庫認得我們是誰呢?
沒錯!我們需要一個憑證,這個憑證就是SSH 公鑰
具體是怎么驗證的呢(涉及到一點點密碼學知識):
Git服務器會獲取嘗試push的成員信息,經過特定的加密計算方法(這里是SHA256),生成一串密鑰,若這串密鑰與先前作者上傳的公鑰匹配,則通過
現在,在Git bash倉庫里輸入以下命令
ssh-keygen -t rsa -C "你自己的郵箱地址"
作用:創建你自己的SSH-Key
然后咱一路回車就好(畢竟你也不是做啥保密工作的,也不需要設置什么密碼)
或者在問保存路徑的時候更改一下(我就不更改了)
咱們可以去給出來的路徑里找到id_rsa.pub文件(在命令行上有寫路徑),接着用記事本打開它:
接着,咱們打開Gitee的個人主頁,在個人設置的安全選項卡上找到安全設置——SSH公鑰,把剛剛生成的文件復制進去
點擊確定即可。
接着,我們需要在本地設置一下個人信息
git config --global user.name "你的名字" git config --global user.email "你的郵箱"
如果想查看已經添加的信息,可以用如下命令查詢
git config --list
接下來,我們在Gitee上新建一個倉庫,拿到倉庫的ssh地址/http地址(一般選擇前者,因為后者還需要輸入賬號密碼登陸,比較麻煩)
(不過Gitee的SSH不知為何經常抽風,所以咱還是用http來演示吧)
如果你已經新建過倉庫了,可以在如下位置找到倉庫鏈接:
使用以下代碼把遠程庫和本地git庫鏈接起來:
git remote add 遠程倉庫代替分支名(一般用origin) 遠程倉庫地址
接着我們可以用 git remote -v來查看鏈接狀態:
最后直接利用push命令,將本地的分支push上去即可
git push 遠程分支名 本地分支名
如果想要刪除遠端分支怎么辦?可以使用以下命令
git remote rm 分支名
然后再重新add就好啦
好了,咱們去Gitee上的倉庫看看,是不是已經上傳上去了
大功告成!
六、分支管理
分支:
想象一種情況:
你想嘗試修改調試某一Git倉庫里的代碼,可是你今天改了一半,沒改完。
你想commit把已經寫了一半的修改保存,但又不希望其它人因為你的半成品代碼干不了活,這可咋整?
這時候就可以請分支出場了!
你只需要創建一個屬於自己的分支,把自己的修改提交到這個分支上,到時候碼完了,再同原分支合並,豈不美哉?
那現在我們就來一起學習吧!
分支的創建和提交至遠程倉庫:
我們可以用以下命令來新建並進入分支:
git branch 分支名稱
git checkout 分支名稱
當然,你也可以把兩條命令寫在一起,像這樣:
git checkout -b 分支名稱
接下來咱對這個分支下的文件進行修改,然后提交,並push到遠程倉庫上
好了,上傳完畢!
修改結束,如果我們現在想把遠程倉庫上的branch2和master給合並,又改怎么做呢?
沒錯,我們要開始Pull Request咯!
切換到Pull Request選項卡,選擇新建Pull Request:
在我們的例子中,待合並的分支是branch2,我們想把這個分支合並到master去,則我們可把branch2設置為源分支,master設置為目標分支:
然后填寫標題提交即可。
接着,我們需要手動通過審核,然后接受這個Pull Request
接受這個PullRequest之后,大功告成!
可以看到,我們已經成功的把branch2分支給合並到了master分支里。
如果branch2分支比master分支要老的話,在Pull request審核那里,Git不能自動合並,需要我們來進行手動合並,我在這里就不演示了。
七、對別人的倉庫進行修改
如果,我想和別人合作協同開發一個軟件,即對別人的倉庫進行修改並提交,該怎么辦呢?
我們當然不可能直接對別人的倉庫進行修改(SSH公鑰不匹配),所以需要用fork功能先把別人的倉庫給克隆到自己賬號名下。
打開別人發給你的倉庫地址,點擊右上角的fork,在你的賬號下創建一個這個倉庫的克隆:
接着,在我們自己的賬號里打開fork下來的倉庫,點擊克隆/下載,拿到http/ssh鏈接
然后,我們在本地的Git bash里,輸入以下命令
git clone 倉庫對應地址
接着這個倉庫里的內容就會被下載到本地
接着進入該項目文件夾,開始我們的修改,並把它push回Gitee(默認遠程服務器分支名字為origin,可用git remote -v查看):
最后,我們通過Pull request,把我們賬號下的更改推送到原倉庫,就可以靜靜等待原倉庫的主人接受Pull Request咯!
以上就是Git的基本食用指南咯,趕快把這個好用的工具,運用到你們的大作業/雛燕計划項目中吧!