Git學習
管理本地倉庫
此學習將會使用git軟件進行編輯,即git-bash.exe文件,這里主要使用命令行進行編輯,主要是為了方便以后在linux系統中使用命令行進行操作
前提
- 安裝git
- 擁有GitHub賬號
本地git的初始化
-
設置用戶名
git config --global user.name'用戶名'
-
設置用戶名郵箱
git config --global user.email "你的郵箱"
-
查看設置
git config --list
可以查看當前文件夾的設置,包括用戶名和郵箱,以及后面的倉庫信息
-
在當前文件下創建新文件夾(實例為test文件夾)
mkdir test
當然也可以在文件系統中右擊創建
-
在文件內初始化git(創建git倉庫)
cd test
進入當前目錄下的剛新創建的test文件夾
git init
初始化,即在當前文件夾下創建一個.git的隱藏文件夾
此時,剛建的test(示例)就成為了一個git repository(倉庫)
嘗試使用git本地倉庫
-
創建文件
touch a1.java
-
查看當前文件夾狀態(查看當前是否有文件需要commit)
git status
向本地倉庫中添加文件的流程
git status
查看文件情況
git add xxx.java
從工作區上傳到暫存區
git commit -m "描述" (文件)
從暫存區上傳到git倉庫,在-m后添加相關的文字描述
詳解
- 當文件夾中出現新文件時,使用git status會出現紅色的未提交的文件(即新文件)
- 然后使用 git add 新文件 后,再使用git status會出現綠色的提示: new file: 新文件,此時文件到達暫存區
- 再使用 git commit -m '提示信息' ,回車后會把文件上傳到git倉庫中
修改本地倉庫文件
vi 文件名
編輯修改該文件
cat 文件名
查看該文件
git diff [文件名]
比較該文件的工作區和暫存區
不帶文件名可以比較多個文件
git diff HEAD 文件名
比較工作區和本地倉庫
git diff [本地庫的歷史版本] [文件名]
比較工作區和本地庫某個版本
詳解
- 使用 v1 文件名 修改文件后,使用 git status 查看倉庫狀態時會出現紅色的 modified: 文件名
- 然后使用 git add 文件名 后,再使用 git status 查看倉庫狀態時會出現綠色的 modified: 文件名(添加到暫存區)
- 再使用 git commit -m '提示信息' ,回車后會把文件上傳到git倉庫中
刪除本地倉庫文件
rm 文件名
刪除該文件,是正常寫法
rm是remove的意思,也有 rm -rf 文件名 的寫法,
后面的參數r是recursive遞歸循環,f是force強制不確認
rm -i 文件名 為刪除前出提示, rm -l 文件名 是刪除三個以上時才出提示
git rm 文件名
從暫存區中刪除文件
- 使用 rm -rf 文件名 刪除文件后,使用 git rm 文件名 讓暫存區刪除文件
- 再使用 git commit -m '提示信息' ,回車后git倉庫也會刪除文件
管理Git遠程倉庫
使用遠程倉庫的目的
作用:備份,實現代碼共享和集中化管理
[圖片上傳失敗...(image-79661-1559201388014)]
Git 克隆操作
目的
將遠程倉庫(github對應的項目)復制到本地
- 完整的把遠程庫下載到本地
- 創建 origin 遠程地址別名(可以使用別人起的別名)
- 初始化本地倉庫
代碼
git clone 倉庫地址
倉庫地址
注意要到已經初始化的文件夾下克隆
同時可以讓本地倉庫記住倉庫地址
git remote add 別名 倉庫地址
起好別名后,可以通過
git remote -v
查看別名和對應的倉庫地址
修改后提交到遠程倉庫
git push (別名 節點)
- 修改或添加文件
- git add 文件名 提交到暫存區
- git commit -m '描述' 提交到本地倉庫
- git push 提交到遠程倉庫
邀請別人加入團隊
到倉庫的setting-Collaborators中輸入成員的名字
抓取遠程倉庫的修改
pull = fetch + merge
git fetch 別名 分支
git merge 別名/分支
所以可以使用另外的方法pull
git pull 別名 分支
出現沖突
- 如果不是基于GitHub遠程庫的最新版所做的修改,不能推送,必須先拉取
- 拉取下來后如果進入沖突狀態,則按照“分支沖突管理”操作解決即可
Github Pages 搭建個人網站
訪問
https://用戶名.github.io
搭建個人站點
-
創建個人站點
新建倉庫(倉庫名必須是 用戶名.github.io)
-
在倉庫下新建index.html的文件即可
作為首頁
這樣訪問 https://用戶名.github.io 就能訪問 index.html 了
注意github僅支持靜態網頁,且倉庫里只能是.html文件
搭建項目站點(Project Pages)
進入項目主頁,進入 settings
-
在 settings 頁面,點擊 Launch automatic page generator (位于下方)
會進入主題頁面,同時可以編輯
生成網頁
其他git指令
查看信息
git log
commit ######### (HEAD -> master)
####代表該版本的索引,可以根據索引值進行版本操作
HEAD代表當前版本,指向master分支
(按空格可以翻頁 b向上翻頁 q退出)
git log --pretty=oneline
以一行一條信息的方式顯示
git log --oneline
更簡潔的顯示(只顯示當前版本后面的版本)
git reflog
能提示版本回溯需要的步數(能顯示所有歷史記錄)
更改版本
基于索引值操作(推薦)
git reset --hard 索引值
- 可以先用 git log 查看版本對應的索引值(局部索引值也可以)
- 再用 git reset --hard 索引值 把版本定在該索引值的版本下
使用^符號(只能往后)
git reset --hard HEAD^
退到后面一個版本
一個代表后退一個,幾個代表后退幾個版本
使用~符號
git reset --hard HEAD~數字
數字是多少代表后退多少步
reset參數
-
--soft
git reset --soft 僅移動本地倉庫的指針
-
--mixed
git reset --mixed 僅移動本地倉庫和暫存區的指針
-
--hard
git reset --hard 能移動本地倉庫、暫存區和工作區的指針
幫助命令
git help 想查詢的命令
Git的分支
在版本控制中,使用多條線同時推進對個任務(多個功能的開發)。
各個分支在開發的過程中,如果某一個分支開發失敗,不會對其他分支有任何影響,失敗的分支刪除重新開發即可
分支的相關操作
查看所有分支
git branch -v
創建該分支
git branch 分支名
切換分支
git checkout 分支名
合并分支(被合并)
切換到接受修改的分支上,用 git checkout 分支1 切換
-
執行 merge 命令
git merge 分支2
分支2就合并到分支1中
解決沖突
合并時可能出現兩個分支行不一致,導致合并失敗,此時需要手動合并
-
打開沖突文件( vim 文件名 )
可能會出現下面的沖突(案例)
合并出現沖突.png
刪去沖突符號,修改文件(或者留下適合的那一行)
-
執行 git add 文件名 和 git commit -m "描述" 合并到本地倉庫中
注意描述后不能帶文件名