GIT--指南--環(huán)境搭建--常見問題解決--持續(xù)更新

本文盡量以初學者的角度讓你快速掌握GIT參與多人協(xié)作,由簡單到復雜,如果你不是初學者,請?zhí)^前面的基礎部分。
跟我加入新時代代碼協(xié)作吧

本文參考:

廖雪峰老師的GIt教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

Git官方文檔
https://git-scm.com/book/zh/v1/

是什么

Git是一個開源的分布式版本控制系統(tǒng),可以有效、高速的處理從很小到非常大的項目版本管理。 Git 是 Linus Torvalds 為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件
--------------------------------------------------------------------------------------來源-百度百科

Git是目前世界上最先進的分布式版本控制系統(tǒng)(沒有之一),作為新時代優(yōu)秀青年,怎么能不接觸這么高端大氣上檔次的玩意,那你肯定又要問

什么是版本控制系統(tǒng)?

OK?舉個例子,如果你用過Microsoft Word寫過文章,文檔或者是什么長篇大論,那你肯定會有這種經(jīng)歷

想刪除一個段落,卻又怕無法找回,怎么辦呢,先把當前的版本另存為另一個文件,然后刪完接著來寫,接著再遇到這種問題,再另存為。

所以你的word變成了這個樣子:


word

過了一周,你想找回被刪除的文字,但是已經(jīng)記不清保存在哪個文件里面了,只能一個一個去尋找,隔著屏幕我都能知道你這會的心情。

OK,以這個文檔為基礎,再想下,公司的小王要和你一塊整理這個文檔,于是你把你現(xiàn)在已經(jīng)寫好的這部分發(fā)給他了,你倆一塊來寫,小王寫好后,把文件傳給你,這個時候,發(fā)動你聰明的小腦筋,你得知道他修改了哪里,他新增了什么,在哪個地方新增的,怎么和你后來自己寫的整合,是不是想想都頭疼?

沒關系,這也是Git出現(xiàn)的原因,記錄文件在每個版本的改動信息,不用個人手動管理。

那我們就開始吧

安裝
1.在Linux上安裝Git

因為我沒有接觸過Linux,這段內(nèi)容是從廖雪峰老師的網(wǎng)站直接復制來的,各位如果有問題還希望及時留言

首先,你可以試著輸入git,看看系統(tǒng)有沒有安裝Git:

$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

像上面的命令,有很多Linux會友好地告訴你Git沒有安裝,還會告訴你如何安裝Git。
如果你碰巧用Debian或Ubuntu Linux,通過一條sudo apt-get install git就可以直接完成Git的安裝,非常簡單。

老一點的Debian或Ubuntu Linux,要把命令改為sudo apt-get install git-core,因為以前有個軟件也叫GIT(GNU Interactive Tools),結果Git就只能叫git-core了。由于Git名氣實在太大,后來就把GNU Interactive Tools改成gnuit,git-core正式改為git。

如果是其他Linux版本,可以直接通過源碼安裝。先從Git官網(wǎng)下載源碼,然后解壓,依次輸入:./config,make,sudo make install這幾個命令安裝就好了。

2.Mac OS 、Windows通用安裝Git
  1. 下載git 文件 地址:https://git-scm.com/downloads
下載
  1. 下載完之后雙擊進行安裝。


  2. 選擇安裝目錄


    選擇安裝目錄
  3. 選擇組件


    選擇組件
  4. 開始菜單目錄名設置


    開始菜單目錄名設置
  5. 使用命令行環(huán)境


    使用命令行環(huán)境
  6. 以下三步默認,直接點擊下一步




  7. 安裝完成

安裝完成
  1. 檢測是否安裝完成
    回到電腦桌面,鼠標右鍵點擊,如果看到如下圖兩個Git單詞則安裝成功
檢測

也可打開命令行工具,輸入以下指令

git --version

按下回車如果正確運行,就能得到你電腦上安裝的Git的版本號,則安裝成功,如下圖:


image.png

安裝完成進行全局配置:
打開命令行輸入

git config --global user.name "userName"  //用戶名
git config --global user.email email      //郵箱

因為Git是分布式版本控制,所以多人寫作時候,進行操作,你必須自報家門,這樣的話,在進行操作的時候,遠程倉庫才知道是誰,做了什么事。

OK,這樣的話,我們就正確的安裝和配置好了基本的GIT環(huán)境。接下來,我們就簡單的講解下Git的工作流程。

GIT工作流程
  • 克隆 Git 資源作為工作目錄。
  • 在克隆的資源上添加或修改文件。
  • 如果其他人修改了,你可以更新資源。
  • 在提交前查看修改。
  • 提交修改。
  • 在修改完成后,如果發(fā)現(xiàn)錯誤,可以撤回提交并再次修改并提交。
如下圖
Git工作流程
創(chuàng)建版本庫

什么是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。

所以,創(chuàng)建一個版本庫非常簡單,首先,選擇一個合適的地方,創(chuàng)建一個空目錄:

$ mkdir gitTest
$ cd gitTest
$ pwd
/git/gitTest

pwd命令用于顯示當前目錄。在我的Mac上,這個倉庫位于/git/gitTest。

如果你使用Windows系統(tǒng),為了避免遇到各種莫名其妙的問題,請確保目錄名(包括父目錄)不包含中文。

第二步,通過git init命令把這個目錄變成Git可以管理的倉庫:

$ git init
Initialized empty Git repository in /git/gitTest/.git/

這樣的話會在倉庫的目錄內(nèi)生成一個.git的文件,默認隱藏,在一些特殊的編輯器內(nèi)可以顯示,里面的信息是跟蹤管理版本庫的,如沒有必要,請不要修改。

OK,接下來,我們就來看看GIT的強大力量吧。

我們在剛才建好的文件夾下,創(chuàng)建一個 gitTest.txt 文件

gitTest

在這個文件中輸入以下內(nèi)容

這是一個git測試文件

和把大象放到冰箱需要3步相比,把一個文件放到Git倉庫只需要兩步。

第一步,用命令 git add 告訴Git,把文件添加到倉庫:

$ git add gitTest.txt

執(zhí)行上面的命令,沒有任何顯示,這就對了。

第二步,用命令 git commit 告訴Git,把文件提交到倉庫:

$ git commit -m "修改的描述 "
[master (root-commit) ea48624] 修改的描述
 1 file changed, 1 insertion(+)
 create mode 100644 gitTest.txt

簡單解釋一下 git commit 命令,-m 后面輸入的是本次提交的說明,可以輸入任意內(nèi)容,當然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄。

git commit 命令成功執(zhí)行后會告訴你,一個文件被更改,也就是我們新添加的 gitTest.txt 文件,插入了一行內(nèi)容,也就是里面的(這是一個git測試文件)。commit命令可以一次提交很多文件,取決于你添加(add)多少文件到倉庫。當然你也可以使用 git add . 講全部已改動的文件一次性全部添加,然后再使用commit一次性全部提交,這個當然取決你自己了

ok,到現(xiàn)在我們已經(jīng)成功的添加并提交了一個 gitTest.txt 文件,現(xiàn)在我們繼續(xù)改動這個文件,再添加一行文字:

Hello,world
這是一個git測試文件

熟悉的hello,world,現(xiàn)在我們運行 git status 命令看看結果。

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   gitTest.txt

no changes added to commit (use "git add" and/or "git commit -a")

git status 命令可以讓我們時刻掌握倉庫當前的狀態(tài),上面的命令告訴我們,gitTest.txt被修改過了,但還沒有準備提交的修改。

雖然Git告訴我們readme.txt被修改了,但如果能看看具體修改了什么內(nèi)容,自然是很好的。比如你休假兩周從國外回來,第一天上班時,已經(jīng)記不清上次怎么修改的gitTest.txt,所以,需要用git diff這個命令看看:

$ git diff
diff --git a/gitTest.txt b/gitTest.txt
index cb0f561..cbbf0d5 100644
--- a/gitTest.txt
+++ b/gitTest.txt
@@ -1 +1,2 @@
+hello,world
 這是一個git測試文件
\ No newline at end of file

上面的命令輸出的意思是,我們在第一行添加了一個"hello,world",知道了修改什么之后,就可以放心的提交了,提交修改文件和剛才我們做的提交新文件是一樣的步驟

第一步是 git add gitTest.txt

$ git add gitTest.txt

同樣沒有任何提示,接下來我們在提交之前,先進行一下 git status 的操作,看下當前的倉庫狀態(tài)

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   gitTest.txt


git status 告訴我們,將要被提交的修改包括readme.txt,下一步,就可以放心地提交了:

$ git commit -m "提交修改"
[master 89fe590] 提交修改
 1 file changed, 1 insertion(+)

提交后我們再執(zhí)行 git status 命令,查看當前倉庫的狀態(tài):

$ git status
On branch master
nothing to commit, working tree clean

Git告訴我們當前沒有需要提交的修改,而且,工作目錄是干凈(working tree clean)的

OK,學到簡單的添加、提交操作后,我們來直接上手項目,看看更多的git操作,

開始的時候說過,GIT是多人協(xié)作分布式管理系統(tǒng),既然是多人協(xié)作,自然會有一個遠程的倉庫,比如一個電腦24小時開機來充當服務器的角色,其他的每個人都可以從這個"服務器"倉庫克隆一分到自己的電腦上來進行操作,然后把各自的提交推送到這個"服務器"上,也可以從服務器倉庫中拉取別人的提交。

我們完全可以自己搭建一個這樣的GIT服務器,但是,為了學習GIT搭一個服務器,完全是小題大做,也沒有必要,于是,大家一定能夠想到一個耳熟能詳?shù)拿?/p>

GitHub

這個網(wǎng)站就是提供Git倉庫托管服務的,所以,只要注冊一個GitHub賬號,就可以免費獲得Git遠程倉庫

但是現(xiàn)在為了學習便利,我們來采用開源中國的碼云來進行舉例。
關于碼云的介紹,和碼云和github的區(qū)別請參考

https://www.zhihu.com/question/50212423

言歸正傳,注冊碼云賬號并登錄,會看到類似以下界面


碼云

接著,按以下步驟新建一個項目


新建項目

輸入完成后,點擊完成創(chuàng)建,會自動生成項目并且跳轉到一個類似這樣的頁面


創(chuàng)建項目

然后,如圖所示,可以查看項目的git地址


git地址

OK,這樣的話,我們就已經(jīng)在碼云上創(chuàng)建了一個遠程倉庫,在實際操作中我們要把遠程倉庫和本地的倉庫關聯(lián)起來,這樣的話,才能在本地倉庫中向遠程倉庫上傳或下載東西,怎么做呢?打開命令行,在本地倉庫的目錄中輸入:

$ git remote add origin git@gitee:zyq9613/gittest.git

解釋下,上面的代碼,git remote add是git關聯(lián)的命令,后面的git@gitee.com大家都知道了吧,對了,正是碼云,github對應的是git@github.com,在這里我們用的是開源中國的碼云舉例,再往后的zyq9613則是我在碼云的賬號,大家注意,這一步一定要換成自己的賬號,否則你本地關聯(lián)的就是我的遠程庫,關聯(lián)倒是不要緊,但是你以后是肯定推送不上去的,因為我的白名單中沒有你的SSH公鑰。OK,扯遠了,再往后面的gittest.git就是我們剛才創(chuàng)建的遠程倉庫。

OK,這樣我們就關聯(lián)上了遠程倉庫,怎么驗證是否成功關聯(lián)呢 ?打開命令行,輸入:

$ git remote -v
origin  git@gitee.com:zyq9613/gittest.git (fetch)
origin  git@gitee.com:zyq9613/gittest.git (push)

這個命令是查看關聯(lián)的遠程庫的信息的,到這里我們就成功的將本地倉庫和遠程倉庫關聯(lián)了,然后就可以快樂的協(xié)作開發(fā)了。

總結下:

全局配置

git config --global user.name "userName"  //用戶名
git config --global user.email email      //郵箱



創(chuàng)建項目

md dirName            //創(chuàng)建文件夾
cd dirName            //進入文件夾
git init              //初始化git
git clone git地址     //從遠程倉庫復制項目到本地




提交代碼

git status           查看所有已修改但未提交的文件
git add .            將所有已變化的文件提交到暫存區(qū),等待提交,可通過git add path  單個提交文件 path是路徑
git commit -m "備注"  以add為索引將修改的代碼添加到 倉庫中

git pull --rebase origin master   將本地代碼與遠程倉庫代碼合并

git push -u origin master         上傳合并后的代碼(第一次上傳使用"-u"進行本地和遠程關聯(lián),以后不用)

完成


Windows可視化工具
https://www.sourcetreeapp.com/  


git常用指令及錯誤處理方法
https://www.cnblogs.com/mantou811/p/6688517.html
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容