Git命令入門教程

一.Git是什麼

​ Git是目前世界上最先進的分佈式版本控制系統

二.SVN與Git的最主要的區別?

​ SVN爲集中式版本控制系統,版本庫是集中存放在中央服務器的,

​ 單獨搭建SVN服務器,不能離線工作

​ 操作簡單代碼保密性較強

在這裏插入圖片描述
​ Git爲分佈式版本控制系統,根本沒有"中央服務器",每個人的電腦都是一個完整的版本庫

​ 適合分佈式開發,強調個體

​ 公共服務器壓力和數據量都不會太大

​ 速度快,靈活

可以離線工作

​ 操作複雜,代碼保密性差
在這裏插入圖片描述
​ GitHub,免費的遠程倉庫,如果是個人的開源項目,放到GitHub上是完全沒有問題的。GitHub還是一個開源協作社區,通過GitHub,既可以讓別人參與你的開源項目,也可以參與別人的開源項目。 SVN的存儲需要依賴一個服務器,而git所有的東西是放在線上的。節約成本,省時省力。

三.安裝Git

​ 在這個網站去下載 https://desktop.github.com/ Git最新版,windows和linux系統都有,我這邊給大家是windows環境上演示

​ 下載之後,安裝,傻瓜式操作,一直下一步 (next),安裝成功之後咱們電腦的程序菜單會出現3個欄目如下圖

在這裏插入圖片描述

​ <1>git bash 支持linux命令的控制檯(常用)
​ <2>git CMD 支持windows命令的控制檯
​ <3>git GUI git軟件圖形化界面(不建議用)

​ 這裏呢,我要給大家操作的是linux系統的,主要以Git Bash爲主,使用linux命令.打開Git bash會出現,如圖:

在這裏插入圖片描述

如果沒有Git賬號的可以自行去Github官網去註冊賬號,注意用戶名和常用郵箱號,然後我們打開Git bash後還要做些設置.

​ git config --global user.name “你的暱稱”
​ git config --global user.email “你登陸git的郵箱”

在這裏插入圖片描述
然後可以通過 git config --list 查看配置列表

以下是git命令行中常用的操作命令:

cd E:進入相應的磁盤

cd /e/test/js 進入文件夾

cd .. 返回上一層目錄

mkdir 創建目錄

pwd 顯示當前工作目錄的全路徑

touch test.js     新建某某文件

vi test.js 編輯xx文件, 按i切換到編輯模式,按esc切換到命令模式,輸入冒號:wq 回車,保存並返回

rm  test.js 刪除文件

ls  查看當前目錄的所有文件

clear  清屏

在這裏插入圖片描述
​ 那上述的準備工作已經做好了,我們來正式的使用git,最重要的步驟來了,我們先通過cd /e/test/js (你的文件路徑)進入地址然後使用git init命令初始化當前項目,此時你的目錄下會多出一個.git的隱藏文件(設置隱藏文件可見),存儲着當前項目所有的版本信息.特別注意,不要胡亂的動這個.git的文件夾,不要管它.

​ 我們在當前目錄下,新建一個readme.md的文件,裏面隨便寫點內容便於我們後面操作.
在這裏插入圖片描述

四.操作文件,提交到git服務器

你的本地倉庫由 git 維護的三棵“樹”組成:

​ 第一個是你的 工作目錄,它持有實際文件;

​ 第二個是 暫存區(Index),臨時保存你的改動;

​ 最後是 HEAD,指向你最近一次提交後的結果。

現在來開始使用git命令操作版本控制工具上面我們初始化了當前項目,有了.git文件,也測試新建了一個readme.md的文件,我們現在通過命令操作

1.gid add 文件名 提交到暫存區

​ git add -u 提交所有被修改(modified)和被刪除(delete)文件,不包括新建文件

​ git add . 提交所有新文件和被修改的文件,不包括被刪除的文件

​ git add -A 提交所有變化

​ git add * 提交所有變化(忽略.gitignore)

​ 注意:在Git工作區的根目錄下創建一個特殊的.gitignore文件,然後把要忽略的文件名填進去,Git就會自動忽略這些文件。

2.git commit -m “提交的備註”

​ 把剛纔的提交到暫存區的文件,提交到本地倉庫中

3.查看commit狀態 git status

​ 使用git status 查看當前工作目錄和暫存區的狀態

​ 當出現 nothing to commit, working tree clean 時,說明咱們剛纔的提交是ok的.

​ 我們再修改下readme.md中的內容,並重新使用git status

​ 會出現一些變化,git告訴我們,我們本地進行了一些修改,但是這些修改並沒有被提交

4.查看修改內容,與上版本文件對比 git diff

​ 可以查看工作區和暫存區代碼的區別

​ 使用git diff命令,會出現更改信息,會把剛纔咱們修改的內容明顯標出來

​ 那我們還跟上面操作一樣,先add ,然後在commit

5.恢復到工作區 git checkout 文件名(單文件)

​ 比如我們再修改了readme.md的文件,寫了很多不想要了,然後又想恢復到我們暫存區的那個一個版本文件,可以使用 git checkout readme.md,立馬恢復到上次提交到暫存區的文件

​ 也可以 git checkout [版本號] 恢復的文件

​ git checkout 56sf6ss readme.md(注意,下面可以獲取前7位的版本號)

6.查看日誌和版本git log git reflog

​ 可以查看版本日誌,查看之前之前提交過的所有的歷史版本

​ git log 查看完整的版本號(hash值)

​ git reflog 查看前7位的版本號(hash值)

7.回退版本(恢復到指定任意版本) git reset --hard HEAD^(多文件)

git reset --hard HEAD^ 回退到上個版本
git reset --hard HEAD^^ 回退兩個版本
git reset --hard 56sf6ss 回退到指定版本

8.刪除 rm 文件名

​ 先rm readme.md (本地刪除)

​ 通過git status 查看狀態 會說本地工作區和暫存區的區別,刪除了文件

​ 此時如果我們繼續提交被刪除的文件可以執行下面操作

​ git add -A 再git commit -m “刪除了剛纔的readme.md文件”

​ 那現在版本庫上的也沒有了,你可以通過git checkout readme.md試一下,報錯,會說找不到文件路徑

​ 如果不想提交,放棄剛纔刪除的,可以通過git reset --hard 版本號 來恢復文件

​ 上面8項操作,解決了我們本地工作區到暫存區的增加,刪除,修改,退回,恢復等操作.

​ git init -> 創建版本庫

​ git add 文件名 ->添加到暫存區

​ git commit -m “提交註釋” ->提交到本地倉庫

9.創建密鑰(一臺電腦配置一次) ssh-keygen -t rsa -C “郵箱賬號”

a.首先檢查電腦是否曾經生成過密鑰

​ cd ~/.ssh 回車

​ ls 回車

​ 如果打開該文件加爲空,則表示沒有生成過密鑰進入b步驟 (~表示根目錄)

b.生成密鑰

​ ssh-keygen -t rsa -C “你註冊git使用的郵箱”

​ 命令要求輸入密碼,不用輸,三個回車即可.執行成功之後,主目錄.ssh目錄下會生成 兩個文件:id_rsa 私鑰文件,id_rsa.pub 公鑰文件

​ 如果找不到兩個文件,可以這樣找到

​ windows電腦通過 C盤 => 用戶 => 你名字的用戶 => .ssh隱藏文件夾

c.去Github配置密鑰

​ 登陸github帳戶點擊頭像,然後 Settings -> 左欄點擊 SSH and GPG keys

​ -> 點擊 New SSH key在遠程倉庫gitlab上添加title和key,和本地的一致。 title可以自己取一個容易區分的名字,key爲id_rsa.pub中的內容(全部復 制,可用cat id_rsa.pub命令打開)

​ 配置了ssh祕鑰,使用遠程倉庫的 ssh 地址提交

10.連接遠程庫 git remote add origin 項目地址

​ git remote add origin https://github.com/lechar0327/GitTest.git

11.將本地的庫推送到master分支上(推送到服務器) git push -u origin master

git push -u -f origin master

​ 提交到遠程倉庫,這個命令中的 -f是強制推送,因爲遠程倉庫只有初始化文件,所 以強制推送上去就行了,不加-f 會報當前分支沒有遠程分支,強制推送可以覆蓋master, 這樣就完成了第一次提交的步驟.

​ 【注】windows電腦會要求輸入賬號和密碼(輸入github賬戶的賬號密碼)

​ git remote -v 查看遠程倉庫地址

​ 然後去服務器上查看是否推送成功.

​ 那以上11個步驟,就完成了我們從本地初始化,到添加到暫存區,然後提交,最後連接遠程庫,並且推送成功的所有操作了,這上面很多都是隻需要配置一次的,當第二次開始的時候,就不需要那麼多步驟了.只需要

​ <1> 工作區 => 暫存區
​ git add *
​ git commit -m “”
​ <2> 檢查暫存區的狀態
​ git status
​ <3> 將暫存區的數據推送到遠程倉庫去
​ git push

12. git push 推送到遠程倉庫

​ 將暫存區的文件全部推送到遠程倉庫

​ git push (提交master分支 到遠程倉庫)

​ git push origin 分支名 (提交其他分支 到遠程倉庫)

​ 注意:如果我們在執行上述 第10步操作時,報錯了,提示fatal: remote origin already exists.這個錯誤信息,我們解決辦法如下:

​ 1、先輸入$ git remote rm origin

​ 2、再輸入$ git remote add origin [email protected]:djqiang/gitdemo.git 就不會 報錯了!

​ 3、如果輸入$ git remote rm origin 還是報錯的話,error: Could not remove config section ‘remote.origin’. 我們需要修改gitconfig文件的內容

​ 4、找到你的github的安裝路徑,我的是 C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca4ec8\etc

​ 5、找到一個名爲gitconfig的文件,打開它把裏面的[remote “origin”]那一行刪掉就 好了!

五.拉取遠程倉庫數據

1.從服務器克隆數據 git clone

​ git clone https://github.com/lechar0327/GitTest.git

​ 獲取遠程倉庫的更新數據

​ git fetch:相當於是從遠程獲取最新到本地,不會自動merge

​ git pull:相當於是從遠程獲取最新版本並merge到本地

​ git pull origin 分支名 更新某個遠程分支到本地

六.分支操作

​ 1.查看分支 git branch

​ 2.創建分支 git branch 分支名

​ 3.切換分支 git checkout 分支名

​ 4.創建+切換分支 git checkout -b 分支名(合併2和3的操作)

​ 5.提交分支上的代碼 git add . git commit -m “提交註釋”

​ 6.合併分支(需要切換到主分支進行合併)

​ 7.合併完以後就push ,先pull一次在git push ,也就是先更新在提交

​ 8.刪除分支的命令 git breach -d 分支名字

七.設置git忽略文件

​ 1.創建文件:.gitignore

​ 2.忽略文件列表
以斜槓“/”開頭表示目錄;
以星號“*”通配多個字符;
以問號“?”通配單個字符
以方括號“[]”包含單個字符的匹配列表;
以歎號“!”表示不忽略(跟蹤)匹配到的文件或目錄;

​ .DS_Store
​ node_modules/
​ /dist/
​ npm-debug.log*
​ yarn-debug.log*
​ yarn-error.log*
​ #Editor directories and files
​ .idea
​ .vscode
.suo
​ * .ntvs

​ *.njsproj
上面是操作Git的基本流程,用於工作之中也夠用了,後面如果有補充的我會做補充,希望大家多多關注!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章