一、git: 是一款代碼管理工具(版本控制工具)
1、git 安裝(這里不詳細贅述)
開始git備份之前:在github或者碼雲上建立遠程倉儲(倉庫)
1)、登錄github/碼雲
2)、創建倉庫
3)、進入倉庫編輯
4)、創建完成后,顯示(遠程倉庫界面)
2、git操作具體步驟及相關指令:
1、本地初始化git倉儲/(暫存區)
命令:git init 此時項目文件里會出現隱藏文件夾 .git (這個文件儲存當前項目的所有版本信息)快捷鍵:ctrl+shift+.
2、在git中全局配置當前使用者的用戶名和郵箱(區別各個使用的用戶是誰)
配置用戶名命令:git config --global user.name "WUBO1533085891" (回車會回到根路徑表示成功)
配置郵箱命令:git config --global user.email "1533085891@qq.com" (回車會回到根路徑表示成功)
3、開始備份(共兩步)
開始備份前通過指令:git status 查看當前狀態,通常顯示為紅色
工作區-暫存區(提交到暫存區,再次輸入git status 會看到變成綠色 new file 未提交文件)
(1)輸入命令git add 要備份的文件名(這里指單個文件名)
或者直接git add *(所有文件)
(2)輸入命令git commit -m "這里跟一些提交說明" 例如:"init my project" (到這一步,已將文件從工作區上傳到暫存區)
注意:如果修改文件后直接上傳到倉儲可直接輸入 git commit --all -m "這是一次性的操作" (引號之間的說明可自定義)
4、提交完成后查看狀態:git status
顯示當前工作區是干凈的,沒有任何東西可以被提交。
5、倘若此時需要對文件進行修改。例如修改了html文件。再次通過git status查看狀態時,會提示有文件與上一個版本不一致
提示信息顯示,你可以通過 git add 文件名 再次提交,也可以通過 git checkout 文件名 恢復到之前
因此,通過命令:git add * 以及git commit -m "這是第二次提交" 再次將修改文件提交至遠程倉儲。再次提交后,查看狀態顯示沒有任何東西可以被提交。
6、查看到我對哪個文件進行修改了(紅色代表刪除,綠色代表新增)
git diff
7、git log 查看日志
命令:git log (可以查看提交修改的記錄)
git log --oneline (更精簡的方式查看)
8、 版本回退(恢復版本)
git reset --hard 版本號
倘若提交后,不小心對項目文件進行了刪除操作,可以針對某一版本進行恢復
3、ssh 配置
生成ssh密鑰:
1、生成公鑰和私鑰:
ssh-keygen -t rsa -C "1533085891@qq.com"
注意:后面跟的郵箱地址為github上的郵箱地址
因為之前有生存,括號中是密鑰存放的路徑,直接按回車覆蓋即可,出現下圖紅色區域部分,說明ssh已經生成了
查找密鑰:
1、window電腦查找密鑰文件:我的電腦=>用戶=>用戶名文件夾=> .ssh(隱藏文件)=> id_rsa.pub(密鑰存放文件)
2、蘋果電腦查找密鑰文件:復制密鑰路徑 => 回到桌面頂部菜單(前往)=> 前往文件夾(粘貼路徑)=> 找到id_rsa.pub文件,在編輯器中打開可查看密鑰
也可以通過命令直接獲得密鑰:
gitHub配置密鑰:
回到之前建立的遠程倉儲的頁面,右上角點擊下拉菜單並在新窗口中打開Setting
左側找到SSH and GPG keys選項
點擊新增一個密鑰按鈕
進入密鑰配置頁面隨便起個名字將生成的密鑰拷貝進去,然后添加即可
提交后,可以看到密鑰配置好了。
4、上傳以及下載代碼
暫存區-遠程倉庫
git remote add origin 遠程服務器地址
(注意:這里其實相當於聲明一個變量origin代替地址,遠程服務器地址HTTPS如果受阻,可以更改為SSH地址)
git push origin -u master
輸入命令后,提交成功
提交成功后,刷新遠程倉庫頁面,可以在遠程倉庫頁面看到我們項目上傳成功。readme.md文件會被解析成網頁展示。
如果在前一次將代碼上傳至服務器的命令行master前面加上參數-u 后續提交代碼至服務器/或者從服務器下載只需要輸入 git push/git pull 即可
修改遠程源鏈接,只需輸入命令即可刪除,然后回到步驟1重新添加
git remote rm origin
下載代碼:
此時,只需要在新的項目文件夾路徑下,輸入:
git clone 遠程服務器地址
通過上面指令操作即可,將項目從遠程服務器拷貝到本地。這樣,可以方便促使多人協同開發。
注意:在多人協同開發的過程中,每個人的開發進度是不一樣的,因此為了防止代碼沖突。需要更新服務器上最新的代碼,因此,可以使用git pull 命令來更新本地的項目文件
git pull // 從遠程倉庫同步本地代碼
5、分支
概念:再版本控制過程中,同時推進多個任務,為每個任務,我們就可以創建每個任務的單獨分支。使用分支意味着程序員可以把自己的工作,從開發主線上分離開來,開發自己分支的時候,不會影響主線分支的運行。
默認有一個主分支master
1、創建分支
git branch 分支名字
2、列出分支
git branch // 查看當前分支。* master 為綠色表明當前在master這個分支
git branch -r // 查看遠程分支
3、切換分支
git checkout 分支名字
(1)實際工作中,我們可以在dev分支下修改了項目文件后進行提交到本地。
(2)切換到master后,回到之前主分支時的狀態,在將修改后的分支進行合並
(3)正常合並分支,如果分支沒有對主線master文件里的東西進行修改,那么切換至master分支,輸入命令 git merge 分支名字 即可完成合並。
(4)沖突合並分支,如果分支對主線master文件里的東西進行修改后提交到本地,在切換到其他分支進行了修改后提交到本地,那么在進行合並的時候會產生沖突。
沖突產生的原因:兩個分支在同一個文件的同一個位置有兩套完全不同的修改,git無法替我們決定使用哪一個,必須人為決定新代碼內容。
合並失敗后,沖突部分的代碼,已用特殊符號進行了標記
刪除不必要的代碼以及特殊符號,再次提交至本地庫(注意:這里提交時,不能帶指定文件名)
合並成功
查看狀態,合並后的文件已覆蓋master分支上的文件
4、回到默認分支命令
git checkout master
5、合並分支
git merge 分支名字
6、刪除分支
git branch -d 分支名字
注意:1、合並刪除分支不能在當前分支下進行
2、如果出現master和分支里邊的代碼沖突,則需要手動處理在進行提交
6、總結
github是有牆的,比較慢,在國內的話,我們一般使用gitee。公司中有時候會搭建自己的gitlab服務器
master、dev...其實都是指向具體版本記錄的指針,當前所在的分支,其實是由HEAD決定的。所以創建分支的本質其實就是多創建一個指針。HEAD指向master說明在master分支上。HEAD指向dev說明在dev分支上。
團隊內協作,需要邀請成員github上打開項目=>settings => manage access => invite a collaborator