1. 程式人生 > 其它 >Git詳細用法

Git詳細用法

什麼是Git?

  • Git是一款原始碼管理工具(版本控制工具)
    我們寫的程式碼需要使用Git進行管理。
  • 原始碼有必要管理起嗎?
  • 有必要,因為人工的去處理不同的版本,做相應備份會很麻煩。
  • Git是linux之父當年為了維護linux—linus之前也是手動維護合併把檔案發給Linus
  • linus自己寫了一個版本管理的工具(Git)

Git安裝

初始化Git倉儲/(倉庫)

  • 這個倉庫會存放,git對我們專案程式碼進行備份的檔案
  • 在專案目錄右鍵開啟 git bash
  • 命令: git init

自報家門

  • 就是在git中設定當前使用的使用者是誰
  • 每一次備份都會把當前備份者的資訊儲存起來
  • 命令:
    配置使用者名稱:git config --global user.name "xiaoming"

    配置郵箱: git config --global user.email "[email protected]"

把程式碼儲存到.git倉儲中

  • 1.把程式碼放到倉儲的門口
    • git add ./readme.md 所指定的檔案放到大門口 ./是當前目錄
    • git add ./ 把所有的修改的檔案新增到大門口
  • 2.把倉儲門口的程式碼放到裡面的房間中去
    • git commit -m "這是對這次新增的東西的說明"

如果不加-m"" 會進入另外一個模式vim,點鍵盤上的i, 先按esc,再輸入:q 如果不行強制退出:q!

可以一次性把我們修改的程式碼放到房間裡(版本庫)

  • git commit --all -m "一些說明"

    –all 表示是把所有修改的檔案提交到版本庫

檢視當前的狀態

  • 可以用來檢視當前程式碼有沒有被放到倉儲中去
  • 命令: git status
    若紅色,則表明沒有放進暫存區。
    若綠色,說明已經在暫存區。
    若白色,這說明沒有修改。(git會自動比較)

git中的忽略檔案

  • .gitignore,在這個檔案中可以設定要被忽略的檔案或者目錄。
  • 被忽略的檔案不會被提交倉儲裡去.
  • 在.gitignore中可以書寫要被忽略的檔案的路徑,以/開頭,
    一行寫一個路徑,這些路徑所對應的檔案都會被忽略,
    不會被提交到倉儲中
    • 寫法
      • /.idea 會忽略.idea檔案
      • /js 會忽略js目錄裡的所有檔案
      • /js/*.js
        會忽略js目錄下所有js檔案

檢視日誌

  • git log 檢視歷史提交的日誌
  • git log --oneline 可以看到簡潔版的日誌 (版本號 描述)

回退到指定的版本

  • git reset --hard Head~0
    表示回退到上一次程式碼提交時的狀態
  • git reset --hard Head~1
    表示回退到上上次程式碼提交時的狀態
  • git reset --hard 版本號
    可以通過版本號精確的回退到某一次提交時的狀態
  • git reflog
    可以看到每一次切換版本的記錄:可以看到所有提交的版本號

分支

  • 預設是有一個主分支master

建立分支

  • git branch dev
    建立了一個dev分支
    在剛建立時dev分支裡的東西和master分支裡的東西是一樣的

切換分支

  • git checkout dev
    切換到指定的分支,這裡的切換到名為dev的分支
    git branch 可以檢視當前有哪些分支

合併分支

  • git merge dev
    合併分支內容,把當前分支與指定的分支(dev),進行合併
    當前分支指的是git branch命令輸出的前面有*號的分支
  • 合併時如果有衝突(主分支和分支都有內容的修改),需要手動去處理,處理後還需要再提交一次.

GitHub

  • https://github.com
  • 不是git,只是一個網站
  • 只不過這個網站提供了允許別人通過git上傳程式碼的功能

提交程式碼到github(當作git伺服器來用)

Clone or download裡Clone with SSH(常用)或者Clone with HTTPS(需要輸出賬號密碼)
地址是裡面的URL
  • git push [地址] master
  • 示例: git push [email protected]:neverthe/test2.git master
  • 會把當前分支的內容上傳到遠端的master分支上
  • git init
  • git pull [地址] master
  • 示例: git pull [email protected]:neverthe/test2.git master
  • 會把遠端分支的資料得到:(注意本地要初始一個倉儲!有git倉庫。)
  • git clone [地址]
  • 會得到遠端倉儲相同的資料,如果多次執行會覆蓋本地內容。

先pull拿到最新的資料, 如果github上的版本和本地上的不同,可以先在本地把衝突解決掉。然後再push上傳
修改好之後先在本地提交,再上傳。步驟:
git add ./
git commit -m “這是對這次新增的東西的說明”
git push [email protected]:neverthe/test2.git master

ssh方式上傳程式碼

  • 公鑰 私鑰,兩者之間是有關聯的。
  • 生成公鑰,和私鑰
  • 任意一個目錄下 郵箱是任意起的[email protected] 然後預設回車即可
    ssh-keygen -t rsa -C "[email protected]"

然後cmd,C:\Users\ASUS>。去本地找ASUS資料夾裡面的 .ssh資料夾
裡面的id_rsa.pub是公匙,記事本打開復制全部內容。然後去github上settings SSH模組 New SSH key, Title隨便寫,Key裡面貼上公匙即可。

在push和pull簡寫方式

git remote add origin [email protected]:neverthe/test2.git
(相當於定義了一個變數origin(變數名稱自己隨意起)等於[email protected]:neverthe/test2.git)

git push origin master

git push origin -u master
(當我們在push時,加上-u引數,那麼在下一次push時,我們只需要寫上git push就能上傳我們的程式碼。)
(加上-u之後,git會把當前分支與遠端的指定的分支進行關聯。)


作者:符號哥
微信公眾號:左側為二維碼
個人技術網站-程式設計符號網:http://www.itfh.cn
個人技術網站-IT原始碼網:http://www.itym.cn
新浪微博:https://weibo.com/u/2814576687
如果你想及時得到個人撰寫文章以及著作的訊息推送,或者想看看個人推薦的技術資料,可以掃描左邊二維碼(或者長按識別二維碼)關注個人公眾號。
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。