Git詳細用法
阿新 • • 發佈:2021-09-04
什麼是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
-
- 寫法
檢視日誌
-
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
如果你想及時得到個人撰寫文章以及著作的訊息推送,或者想看看個人推薦的技術資料,可以掃描左邊二維碼(或者長按識別二維碼)關注個人公眾號。
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。