git版本控制工具
一、什么是git
git 官方名稱: 分布式版本管理器
通俗解釋:就是一個管理我們檔案夾的工具,只不過可以保留所有版本資訊
- 就是我們安裝的一個軟體
- 然后這個軟體來管理我們的檔案夾
- 這個檔案夾被git管理后,我們可以對他進行各種操作
- 保證我們寫過的內容不會丟失
二、git安裝
官網:https://git-scm.com/
打開官網,直接下載

選擇自己電腦的作業系統和位數


-
下載好后,直接安裝
-
一直下一步就可以了
-
檢測是否安裝成功,在命令列視窗輸入
# 檢測是否安裝成功 $ git --version
三、git命令操作
- git是一個軟體沒錯,但是不會生成桌面圖示
- 而是需要在 命令列 進行操作的軟體
- 我們單擊滑鼠右鍵,點擊
git bash here,會出現以下內容

- 點開就是一個命令列視窗
- 可以寫一些指令,只不過色彩更鮮艷
- 使用 cmd 或者 powershell 視窗來運行 git 指令也可以
- 只要是在終端運行就行
- OS作業系統直接在 終端 中運行就行
git bash here表示在當前目錄下運行git bash- 所以你在哪個檔案夾下點擊的,那么出來的命令列視窗的目錄就是哪里
四、本地庫使用
1.git磁區
git init 在當前目錄創建版本庫,該目錄被git管理
-
當一個檔案被
git管理了以后 -
git就會對當前檔案夾進行 磁區 -
會分為三個區域
- 作業區: 我們書寫的原始碼就在作業區里面
- 暫存區: 把我們想要存盤的內容放在暫存區
- 歷史區: 把暫存區里面的內容拿出來,形成一個歷史版本

向版本庫添加檔案
- 要先放在暫存區
- 然后才能在暫存區里面放到歷史區
- 才能生成一個版本保存下來
2.初始用戶名和郵箱,告訴git是誰提交的版本
$ git config --global user.name "Your Name"
$ git config --global user.email "YourEmail@xxx.com"
3.添加內容在暫存區
git add 指令
-
把單獨一個檔案放在暫存區
# 把檔案夾下的index.txt 文本放在暫存區 $ git add index.txt -
把單獨一個檔案夾放在暫存區(不能存放空檔案夾)
# 把檔案夾下的src檔案夾放在暫存區 $ git add src/ -
把所有檔案放在暫存區
# 把檔案夾下的所有內容放在暫存區 $ git add --all #簡寫 $ git add .
4.暫存區的內容再回拉到作業區
-
把已經放在暫存區的內容在拉回到作業區
# 拉回暫存區的 index.txt 檔案 $ git reset HEAD -- index.txt # 拉回暫存區的 ceshi 檔案夾 $ git reset HEAD -- ceshi/ # 拉回暫存區的 所有檔案 $ git reset HEAD -- . //注意: -- 兩邊都有空格, 拉回所有檔案的時候,有一個 .
5.添加到歷史區
- 暫存區,只是幫我們暫時存放內容,我們洗掉了還是會丟的
- 要想幫我們保存下來,那么還是需要把暫存區的內容放到歷史區
-
git的歷史區,就是把我們暫存區里面的檔案形成一個歷史版本 -
當一些檔案形成一個版本的時候,就會一直記錄下來
-
向歷史區里面添加內容的時候,必須保證 暫存區 有內容
-
因為 歷史區 就是把 暫存區 里面的內容收錄進去
-
向歷史區添加內容使用
git commit -m "說明"# 把暫存區的內容放到歷史區 $ git commit -m "我是第一個版本"- 我們一定要寫一個簡單的說明
- 因為當我們的歷史版本多了以后,我們也不記得那個版本做了哪些修改
- 所以有個簡單的說明會好很多
6.查看日志
-
這時歷史區就有了我們的第一個版本
-
我們使用
git log這個指令查看版本資訊# 查看當前歷史區版本資訊 $ git log

-
commit版本號 -
Author作者 -
Date本次版本的記錄時間 -
后面的內容就是提交的時候寫的說明
-
git reflog
回退查看原來版本號
7.版本回退

-
我們提交了兩次,歷史區也有兩條資訊,也就是兩個版本
-
放在歷史區的內容,理論上就丟不了了
-
現在我們可以把作業區中的內容洗掉掉,洗掉后我們進行歷史回退
-
使用
git reset --hard 版本編號# 回退到第一次提交的版本 $ git reset --hard ce0c17f7a703c6847552c7aaab6becea6f0197f2 # 回退到第二次提交的版本 $ git reset --hard abb2c4f12566440e84bc166c3285f855a37a3bb2 -
方法二:
git reset --hard HEAD ^( ^ 表示回到上一個版本,如果需要回退到上上個版本的話,將HEAD改成HEAD^, 以此類推,那如果要回退到前100個版本,這種方法肯定不方便,我們可以使用簡便命令操作:git reset –hard HEAD~100);

五、GIT遠程庫
1.注冊賬號
github:
官網: https://github.com/

gitee:
官網: https://gitee.com/


2.遠程庫操作
-
開 辟 遠 程 庫 \color{red}{開辟遠程庫} 開辟遠程庫
- 有了
github賬號后 - 我們就登錄
github網站,開辟一個遠程倉庫 github的遠程庫也是以一個倉庫一個倉庫的形式來保存代碼- 我們可以在 github上保存很多的專案
- 只要一個專案一個倉庫就可以了
- 先點擊新建倉庫
- 有了

- 填寫倉庫資訊

- 創建成功

g i t e e 和 g i t h u b 操 作 差 不 多 ? \color{red}{gitee和github操作差不多}? gitee和github操作差不多?
3.添加倉庫地址
-
接下來,就要使用 git 上傳代碼了
-
我們先要告訴 git 上傳到哪里
-
也就是給 git 添加一個上傳的地址
-
使用
git remote add origin 倉庫地址來上傳# 在專案檔案夾下打開 gitbase # 添加倉庫地址 $ git remote add origin https://gitee.com/****/H5.git // remote 遠程的意思 //add 添加的意思 //origin 是一個變數名
4.上傳
-
上傳到哪里的地址我們已經添加好了
-
接下來就是上傳內容了
- 上傳要保證 歷史區 里面有內容
- 上傳的程序會把 歷史區 里面所有的內容上傳到云端
-
我們使用
git push指令來上傳# 上傳內容 $ git push -u origin master # 表示把內容上傳到origin這個地址 # master 是上傳到遠程的 master 分支- -u 是我們第一次上傳的時候使用到的,是為了記錄一下你的用戶名密碼
- 下次上傳就不需要再寫了
-
第二次上傳
# 第二次上傳 $ git push- 第二次上傳的時候,因為有剛才的記錄,就不需要在寫
origin和master - 會默認上傳到
origin這個地址的master分支上 - 到這里,就完成了一次
git推送 - 這個時候本地的檔案夾就真的可以洗掉了
- 因為遠程倉庫有一份我們的內容,本地的就可以洗掉了,可以直接把遠程的拉回來就行
- 第二次上傳的時候,因為有剛才的記錄,就不需要在寫
5.克隆
git克隆就是指把遠程倉庫里面的內容克隆一份到本地- 可以克隆別人 公開 的倉庫,也可以克隆自己的倉庫
- 克隆別人的倉庫,我們只能拿下來,修改后不能重新上傳
- 克隆自己的倉庫,我們修改后還可以再次上傳
克隆
-
復制好地址后,選擇一個我們要存放內容的檔案夾(這里以桌面為例)
-
直接在想存放內容的位置打開
git bash -
輸入克隆指令
git clone 倉庫地址# 直接克隆倉庫 $ git clone https://gitee.com/*****/H5.git-
克隆指定版本
git clone http://github.com/symfony/symfony.git -b v2.0.9 -
克隆遠程分支
git clone -b 遠程分支名 http://github.com/symfony/symfony.git
-

6.下拉
-
不管你克隆下來的倉庫還是別的方式弄來的本地倉庫
-
當別人的代碼更新以后,你想獲得最新的代碼
-
我們不需要重新克隆
-
只需要拉去一次代碼就可以了
-
下拉指令
git pull# 拉取遠程最新代碼 $ git pull
7.GIT沖突
-
git沖突是指在我們的上傳程序中 -
本地的版本和遠程的版本不一致導致的
-
這個時候只要先使用
git pull拉取回來- 讓本地和遠程保持一致
-
然后再重新上傳就好了
-
但是
git pull相對不安全,因為會自動和本地內容合并 -
我們也可以使用
git fetch# 使用fetch 獲取遠程最新資訊并開辟一個一個臨時分支 $ git fetch origin master:tmp # 將當前分支和臨時分支的內容進行對比 $ git diff tmp # 再選擇合并分支內容 $ git merge tmp

六、GIT本地分支
1.git分支介紹
-
git分支,就是我們自己把我們的整個檔案夾分成一個一個獨立的區域- 比如我們開發 登錄 功能,可以放在
login分支下進行開發 - 開發 串列 功能的時候,可以放在
list分支下進行開發 - 大家互不干擾,每一個功能都是一個獨立的功能分支
- 比如我們開發 登錄 功能,可以放在
-
這樣開發就會好很多
-
git在初始化的時候,會自動生成一個分支,叫做master -
表示主分支的意思,我們可以開辟很多獨立分支

2.查看開辟分支
-
開辟一個分支使用
git branch 分支名稱指令# 開辟一個login分支 $ git branch login -
查看當前分支情況
# 查看當前分支情況 $ git branch

-
會看到,當前有兩個分支了
-
一個是
master,一個是login -
前面有一個
*,表示你當前所處分支 -
我們對 登錄 功能的開發要移動到
login分支去完成
3.切換所處分支
-
我們切換所處分支使用
git checkout 分支名稱# 切換到 login 分支 $ git checkout login -
然后我們在整個分支上進行 登錄 功能的開發
-
開發完畢后,我們就在當前分支上進行提交
4.git合并分支
-
git合并分支,只能是把別的分支的內容合并到自己的分支上 -
使用的是
git merge# 切換到master分支 $ git checkout # 把 login 的內容合并到自己的分支 $ git merge login -
這個時候,我們剛才在
login上開發的東西就都到master主分支上
5.洗掉分支
-
先切換到別的分支
-
使用指令
git branch -d 分支名稱來洗掉# 先切換到別的分支 $ git checkout master # 洗掉login分支 $ git branch -d login
6.GIT遠程分支
- 查看遠程分支
git branch -r

- 創建遠程分支(本地分支push到遠程 )
git push origin [name]

- 洗掉遠程分支
git push origin :heads/[name]

-
拉取遠程倉庫
git pull [remoteName] [localBranchName] -
克隆遠程分支
$ fit pill -b[遠程分支名] [地址] $ git clone -b product-dev http://github.com/symfony/symfony.git

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299163.html
標籤:其他
上一篇:2021-09-09
