快速掌握Git基本用法

2021-08-30 08:44:13 字數 3639 閱讀 6735

git是什麼?

git是一款開源的分布式版本控制系統(distributed version control system)。

什麼是版本控制?為什麼需要?

如果你是乙個rd,那就應該知道,碼農最討厭的合作夥伴就是產品經理,因為他們總是三天兩頭的改變主意,不珍惜碼農們的辛苦付出。舉個例子,產品經理提出乙個新需求,碼農lucy通宵達旦,辛苦奮戰幾晚,終於用方案a完美實現,本想高興的找產品經理驗收,可是產品經理看後,不僅不滿意,還痛罵lucy一頓,什麼狗屎,讓其該方案。於是lucy回來憤然刪掉a方案,轉而實現了b方案,然後等產品經理過目後,後者突然說,我突然覺得a方案更合理,改回a吧... … 此時lucy腦子裡肯定是一萬個...也會後悔為什麼那麼..竟然把a刪掉了。

那麼問題來了,如果之前lucy使用了版本管理控制,只需要幾行命令就可以找回a方案了。

好了,進入正題,版本控制,就是這樣乙個機制,對程式**,配置檔案以及說明文件的變更歷史進行管理和記錄,實現隨時檢視,隨時回退到某個版本。

什麼是分布式版本控制?

說到分布式,自然有與其相對應的集中式。兩者分別以git和svn為代表。

集中式版本控制,特點是有單一的集中管理伺服器,儲存所有檔案的修訂版本,所有的檔案。客戶端的電腦並不會儲存歷史版本,所以想查閱某個歷史版本,必須聯網到伺服器,才可以查閱。這樣會受網速的影響,以及擔負伺服器故障的風險;

與之相比,分布式版本控制,則沒有集中管理的伺服器,每個人的電腦都有乙個完整的版本庫,我們可以在本地修改,提交,查閱歷史版本。

用過git的人,這時可能會有乙個疑問了,我們修改code後,會需要把code push到遠端倉庫,這個遠端倉庫是不是集中管理的伺服器呢?no,其實這只是分布式控制管理系統的乙個節點而已,為了協作方便,團隊合作,我們都需要在這個遠端倉庫上面進行交換各自的「修改」而已,輕鬆實現『』改動『』共享。

基本概念

工作目錄(工作copy):用於存放資料的本地工作目錄;

暫存區(index):用於存放待提交資料的快取區;

本地倉庫:遠端庫的乙個完整拷貝。包括所有檔案的修改記錄,分支資訊等。

快照(snapshot):版本庫某個時間點所有檔案的集合

全球版本號(commitid):git庫的版本號,是通過sha-1演算法根據庫中的所有內容計算出來的乙個40位的雜湊值,這個雜湊值是全球唯一的,基本只需要前6位就可以唯一標識了。

git修改檔案的流動

首先,我們所有的修改都是在工作目錄中進行的,修改完以後首先需要新增到暫存區,然後再提交到本地倉庫。提交完成以後會產生唯一的commitid,標識當次提交。在之後的操作中,可以通過commitid實現回滾到某次提交狀態。最後,我們需要將本地倉庫的提交記錄推送到遠端倉庫,實現分享協作。

基本操作:

倉庫初始化,一版兩種方式

一是,直接在當前目錄初始化,命令:

git init

二是,從遠端倉庫clone,命令:

git clone 《中心庫名稱位址》 《本地工作目錄名稱》

2. 新增檔案到暫存區

實際工作中,我們初始化倉庫後,就會修改 or 新增 or 刪除倉庫裡的檔案,當我們完成修改後,我們需要將這些改動,        新增到暫存區,命令如下

git add 《檔名》//新增某個檔案

git add –a or git add .//新增所有檔案

3. 提交到本地倉庫

命令:git commit –m 『』提交資訊」

4. 更新本地分支

1) 在將本地倉庫的提交記錄(commitid)push到遠端倉庫之前,最好先pull遠端倉庫對應的「追蹤分支」的更新,命令:

git pull 《遠端主機名》 《遠端分支名》:《本地分支名》

作用是,拉遠端主機某個分支的更新,並與本地的指定分支合併,很多時候,**衝突是需要這個時候解決的。其實,     遠端分支和本地分支之間可以建立一種追蹤關係(tracking),在使用git clone初始化的時候,所有本地得知預設與遠端倉 庫的     同名分支建立追蹤關係。例如,本地的master自動追蹤origin/master分支;

其中,origin一般指原始倉庫位址的別名

2) 另外,也可以手動建立這種分支追蹤,命令

git branch –track 《本地分支》 《遠端分支》

如果已經建立了追蹤關係,在pull時就可以省略遠端分支名,直接

git pull origin

如果當前分支只有乙個追蹤分支,那麼別名也可以省略,直接

git pull

5. 本地倉庫提交記錄推送到遠端倉庫

為了實現團隊協作,我們的改動需要推到遠端倉庫,以與團隊其他成員合併,命令

git push 《遠端主機名》 《本地分支名》:《遠端分支名》

和git pull一樣,如果遠端分支和本地分支之間已經建立追蹤關係,可以省略遠端分支名

git push 《遠端主機名》 《本地分支名》

這裡需要注意,如果省略的是本地分支名,就相當於把乙個空的分支推到了遠端分支,這個操作就相當於刪除遠端分支

git push 《遠端主機名》 《遠端分支名》

git push 《遠端主機名》  --delete 《遠端分支名》

6. 檢視提交歷史

git log

7. **回滾

有兩種方式:git revert或者git reset

1) git revert是提交回滾,即忽略指定的版本,然後提交乙個新的版本,新的版本中會刪除指定的版本。注意:revert                    是會產生一次新的提交的

git revert

2)git reset的作用是重置到指定的版本,通常是配合一些引數使用

(1)預設是--soft,所有commit都會退回到git緩衝區

(2)--hard,則是將所有的commit的修改直接丟棄

example:

git reset --hard head^//會退到上個版本

git reset --hard//回退or前進到指定commitid

3) 人生總是無常的,有時候你回滾玩**,可能有後悔了,又想回滾到之前的版本,怎麼辦? git reflog可以幫助你。                  你用git reflog列印你的每一次操作,找到你的操作id,就可以輕鬆回滾之前的版本了,步驟如下:

git reflog//檢視你回滾操作,找回回滾操作的commitid

git reset –hard//回退到指定的回滾版本

希望以上的總結,能對你認識和使用git有所幫助。

快速掌握git基本使用

前言 很多時候,我們使用git,尤其是想快速入門時,可能只想掌握基本使用。git命令很多,但真正常用到的還是比較少的,這裡就總結下怎樣快速入門 要使用git,首先得轉殖遠端倉庫,一般有兩種方式,https和ssh,此處以coding為例 1.http模式,需要配置註冊的使用者名稱和郵箱 在git命令...

快速掌握GIT

流程 取 每次工作前更新 到最新版本 修改 提交 到伺服器 設定使用者名稱與郵箱 git config global user.name my name git config global user.email my email.com 從已有的git庫中提取 每次更改 的操作 更新本地 到最新版本...

git 掌握基本git命令

git上傳到github倉庫 git init初始化 git add 是把所有檔案上傳到暫存區 本地 暫存區 才是github倉庫 git commit m 上傳到,並且注釋 如下 git status 是看狀態 然後再試 git push git位址 上傳有幾種,我這裡用了把原始碼推到git倉庫,...