本文創(chuàng)作時版本為 Git-2.41.0,使用目標(biāo)為筆記存儲和代碼庫,部分公司向使用的設(shè)置可能不一樣
本文在創(chuàng)作時通過狂神說視頻的學(xué)習(xí)和幫助
一 Git
1.1 版本控制
版本控制(Revision control)是一種在開發(fā)的過程中用于管理我們對文件、目錄或工程等內(nèi)容的修改歷史,方便查看更改歷史記錄,備份以便恢復(fù)以前的版本的軟件工程技術(shù)。
特別是在多人團(tuán)隊完成項目時,一方面要滿足多人共同修改并及時互相查看,另一方面要使修改可追溯、可還原。
實現(xiàn)跨區(qū)域多人協(xié)同開發(fā)
- 追蹤和記載一個或者多個文件的歷史記錄
- 組織和保護(hù)你的源代碼和文檔
- 統(tǒng)計工作量
- 并行開發(fā)、提高開發(fā)效率
- 跟蹤記錄整個軟件的開發(fā)過程
- 減輕開發(fā)人員的負(fù)擔(dān),節(jié)省時間,同時降低人為錯誤
1.2 版本控制的類型
1.2.1 本地版本控制
記錄文件每次的更新,本質(zhì)上是對每個版本做一個快照,或是記錄補(bǔ)丁文件,適合個人用,如 RCS
。
1.2.2 集中版本控制
SVN(Subversion)
、CVS(Concurrent Versions System)
是集中式版本控制系統(tǒng),所有的版本數(shù)據(jù)都保存在服務(wù)器上,協(xié)同開發(fā)者從服務(wù)器上同步更新或上傳自己的修改
- 版本庫是集中放在中央服務(wù)器的
- 必須聯(lián)網(wǎng),否則用戶就看不到歷史版本,也無法切換版本驗證問題
- 服務(wù)器損壞會影響所有數(shù)據(jù)
- 工作流程:
從中央服務(wù)器哪里得到最新的版本
推送到中央服務(wù)器。 - 優(yōu)點(diǎn):較好的權(quán)限管理功能,操作相較簡單,可以精確控制每個目錄的權(quán)限
- 缺點(diǎn):中心服務(wù)器出問題會影響所有人的工作,速度和分支管理不如
git
1.2.3 分布式版本控制系統(tǒng)
Git
是分布式版本控制系統(tǒng)
- 沒有中央服務(wù)器的,每個人的電腦就是一個完整的版本庫;
- 在不聯(lián)網(wǎng)的情況下,照樣可以提交到本地倉庫,可以查看以往的所有
log
(日志文件),等到有網(wǎng)的時候,push
到遠(yuǎn)程即可; - 每個人都有完整的代碼,存在一定的安全隱患;
- 工作流程:
修改本地的版本庫
各自的修改推送給對方即可 - 優(yōu)點(diǎn):非常強(qiáng)大的分支管理功能。
使用的是SHA-1
哈希算法。這能確保代碼內(nèi)容的完整性,確保在遇到磁盤故障和網(wǎng)絡(luò)問題時降低對版本庫的破壞。 - 缺點(diǎn):權(quán)限管理不方便,需要使用插件
gitolite
或者gitlab
。
1.3 何為 Git
Git是一款免費(fèi)、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理項目、項目版本管理。
原本是為了幫助管理 Linux
內(nèi)核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件。Remote
:遠(yuǎn)程倉庫Repository
:本地倉庫Index / Stage
:暫存區(qū)Workspace
:工作區(qū)
.git
:存放Git管理信息的目錄,初始化倉庫的時候自動創(chuàng)建。Stash
:隱藏,是一個工作狀態(tài)保存棧,用于保存/恢復(fù)WorkSpace中的臨時狀態(tài)
1.4 GIt 的安裝步驟(詳細(xì)繁瑣版)
首先進(jìn)入GitHub
官網(wǎng)git-scm.com,下載適合自己電腦的版本,我的是64位Windows,官網(wǎng)下載太慢,我們可以使用淘寶鏡像下載:http://npm.taobao.org/mirrors/git-for-windows/
以下是官網(wǎng)下載步驟
下載完安裝包之后運(yùn)行
在安裝過程中直接默認(rèn)選項即可,如果可以修改的我會在下圖標(biāo)出。
可以添加兩個選項,第一個是創(chuàng)建個快捷方式,第二個是在Windows終端添加Git bash
,每日檢查更新就不必了(Check daily)
在開始菜單創(chuàng)建快捷方式,直接默認(rèn)
用Windows默認(rèn)的終端文本編輯器
使用默認(rèn)的分支存儲庫名稱
接受第三方軟件使用Git
使用Git
捆綁的ssh
處理回車的方式
使用MinTTY
默認(rèn)終端,在滾回、調(diào)整窗口大小、文本字體和選擇較為靈活
設(shè)置git pull
的行為,分別是快進(jìn)與合并、重新定位、僅快進(jìn)。
任意空白處右鍵——Git Bash Here
,即可進(jìn)入Git
的命令窗口
嗯,這一小節(jié)終于結(jié)束了。
1.4 Git 程序介紹
安裝成功后在開始菜單中會有Git項,菜單下有3個程序:任意文件夾下右鍵也可以看到對應(yīng)的程序!
Git Bash
:Unix 與 Linux 風(fēng)格的命令行(推薦使用)
Git CMD
:Windows 風(fēng)格的命令行
Git GUI
:圖形界面的Git,不建議初學(xué)者使用,盡量先熟悉常用命令
1.4 Git 常用命令
- Git 配置
git config --list
包括git config --global --list
和git config --system --list
system:Git\etc\gitconfig
global 全局:C:\Users\Administrator\ .gitconfig
git config --list #查看git的所有配置信息
git config --l #查看git的所有配置信息
git config --global --list #查看git的用戶配置信息,也叫全局配置(user.name、user.email)
git config --system --list #查看git的系統(tǒng)配置信息
git config --global user.name "user.name" #設(shè)置本機(jī)所有的Git倉庫用戶名
git config --global user.email "user.email" #設(shè)置本機(jī)所有的Git倉庫郵箱
git config --global user.password "password" #配置文件一般C:\Users\Administrator的.gitconfig文件中,故一般不在配置文件中設(shè)置密碼
git config --global --unset user.name #刪除某個全局配置項
ssh-agent bash
ssh-add ~/.ssh/id_rsa.github
ssh-add ~/.ssh/id_rsa.gitee #將新的私鑰加入到 SSH agent 中
touch ~/.ssh/config #多賬號配置,生成config文件
- Linux 系統(tǒng)常用命令
cd E:
cd 文件夾 #進(jìn)入不同位置
cd .. #返回上一級
pwd #顯示當(dāng)前所在的目錄路徑。
ls #列出當(dāng)前目錄中的所有文件
ll #更為詳細(xì)列出當(dāng)前目錄中的所有文件
touch #新建一個文件
rm #刪除一個文件
mkdir #新建一個目錄(文件夾)
rm -r #刪除一個目錄(文件夾)
rm -rf #刪除電腦中全部文件
mv #移動文件
history #查看命令歷史
help #幫助
reset #重新初始化終端/清屏。
clear #清屏
exit #退出
# #表示注釋
- Git 使用
ssh -T git@gitee.com
ssh -T git@github.com #SSH Key測試
git init #將文件夾初始為倉庫
git remote add origin git@github.com:倉庫SSH #關(guān)聯(lián)遠(yuǎn)程倉庫
git remote add origin git@github.com:名字/倉庫名字.git #名字是github注冊的名字
git add 文件名 #將內(nèi)容從工作目錄添加到暫存區(qū)
git add . #將所有新增的文件都添加暫存區(qū)
git commit -m "分支名" #所有通過 git add 暫存的文件提交到本地倉庫
git push -u origin master #上傳文件,如果帶有-u參數(shù),則指定了默認(rèn)的遠(yuǎn)程主機(jī), 這樣以后再推入時,可以簡寫為:git push
git push origin master #上傳文件
git status #展示工作區(qū)及暫存區(qū)域中不同狀態(tài)的文件
git reset HEAD 文件名 #從暫存區(qū)移除指定文件
git checkout -- 文件名 #從本地倉庫恢復(fù)指定文件
git pull #拉取遠(yuǎn)程倉庫的數(shù)據(jù)
git log #查看git歷史提交日志
git reflog #查看git所有提交日志
1.5 配置順序
- 設(shè)置用戶名和倉庫郵箱
git config --global user.name "user.name"
git config --global user.email "user.email"
- 生成
Github
、Gitee
的SSH Key
(加兩個回車)
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "user.email"
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitee -C "user.email"
在C:\Users\Administrator\.ssh
下生成了
- 由于默認(rèn)只讀取
id_rsa
,為了讓SSH
識別新的私鑰,需要將新的私鑰加入到SSH agent
中
ssh-agent bash
ssh-add ~/.ssh/id_rsa.github
ssh-add ~/.ssh/id_rsa.gitee
- 為了便于
Github
與Gitee
都能使用Git
,需要進(jìn)行多賬號配置,生成config
文件
touch ~/.ssh/config
并在該文件里填寫
#Default gitHub user Self
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa.github
# gitee
Host gitee.com
Port 22
HostName gitee.com
User git
IdentityFile ~/.ssh/id_rsa.gitee
完成
1.6 工作流程
git
的工作流程一般是這樣的:
1、在工作目錄中添加、修改文件;
2、將需要進(jìn)行版本管理的文件放入暫存區(qū)域(add);
3、將暫存區(qū)域的文件提交到git
倉庫(commit),并根據(jù)需要是否提交到遠(yuǎn)程倉庫(push)
1.7 文件狀態(tài)
git
管理的文件有三種狀態(tài):已修改(modified),已暫存(staged),已提交(coommitted)
二 GitHub
2.1 創(chuàng)建庫
進(jìn)入https://github.com/官網(wǎng)注冊,如果速度慢可以用steam++等合法科學(xué)上網(wǎng),谷歌瀏覽器的翻譯比較好
點(diǎn)擊右上角加號,New repository
創(chuàng)建新的存儲庫
下面就要讓自己的電腦克隆一個自己所創(chuàng)建的庫,方面自己電腦上的代碼同步到GitHub
你所創(chuàng)建的庫當(dāng)中。
2.2 添加SSH Key
將1.5生成的id_rsa.github.pub
內(nèi)容復(fù)制到SSH Key中
點(diǎn)擊確定即可
2.3 SSH Key測試
輸入下列指令,回車,輸入yes,再回車,紅框處出現(xiàn)Hi表示公鑰添加成功:
ssh -T git@github.com
別忘記了yes!??!
2.4 初始化本地倉庫
2.4.1 本地倉庫搭建
選擇一個文件夾作為本地倉庫,并在此文件夾打開Git Bash
也可以使用cd的方式進(jìn)入文件夾(紅框內(nèi)是所在位置)
輸入git init
將文件夾初始為倉庫
顯示下圖即表示成功
實質(zhì)上是在此位置創(chuàng)建一個有g(shù)it配置的隱藏文件夾
2.4.2 克隆遠(yuǎn)程目錄
克隆遠(yuǎn)程目錄是將遠(yuǎn)程服務(wù)器上的倉庫完全鏡像一份至本地!
git clone 倉庫鏈接
2.5 關(guān)聯(lián)倉庫
復(fù)制倉庫SSH,輸入git remote add origin git@github.com:倉庫SSH
關(guān)聯(lián)遠(yuǎn)程倉庫
2.6 上傳文件
在需上傳文件所在文件夾Bash Here
建立鏈接——add
添加文件夾——commit
標(biāo)注分支——push
推送
git remote add origin git@github.com:名字/倉庫名字.git #名字是github注冊的名字
git add 文件名
git commit -m "分支名"
git push -u origin master
比如我要把3.md
文件放到我的賬號yanqiu12138
的git_test_notes
的main
分支中
首先,要在本地庫的位置Bash Here
,即3.md
所在文件夾,或者在運(yùn)行框里用cd命令
切換位置到庫位置
分別輸入
cd D:
cd Code/Github
git add 3.md
git commit -m "main"
git push -u origin master
2.7 直接在GitHub上傳文件
- 進(jìn)入倉庫,點(diǎn)擊倉庫右上方的
Add file
——Create new file
按鈕: - 注意后綴是
.md
結(jié)尾的文件點(diǎn)擊預(yù)覽的時候才能被格式化,否則就是一個普通的文本
3. 寫完點(diǎn)擊commit changes
(提交更改)
4. Extended description
是描述本次提交做了什么,寫筆記完全不需要
2.8 批操作
批操作指批量打包文件到本地或上傳。
2.8.1 批量下載
- 直接下載:點(diǎn)擊倉庫右上角
Code
——Download ZIP
- 同樣點(diǎn)擊倉庫右上角
Clone or download
,在下拉菜單中復(fù)制所給出的地址,在想要保存的文件夾位置Git Bash Here
,輸入下面代碼,稍后片刻就好了:
git clone 地址
2.8.2 批量上傳
- 直接上傳
- 將上傳文件保存在本地庫,然后
Git Bash Here
,輸入下面代碼,
git remote add origin git@github.com:名字/倉庫名字.git #名字是github注冊的名字
git add 文件夾名
git commit -m "分支名"
git push -u origin master
三 Gitee
Gitee是中文版的GitHub,相較于Github代碼略少,但勝在國內(nèi)可以穩(wěn)定訪問且5 人以下小團(tuán)隊免費(fèi)。
3.1 創(chuàng)建庫
- 到官網(wǎng)注冊Gitee
- 添加郵箱:右上角“賬號設(shè)置”
3.2 添加SSH Key
將1.5生成的id_rsa.gitee.pub
內(nèi)容復(fù)制到SSH Key中
3.3 SSH Key測試
分別輸入下列指令,回車,輸入yes,再回車,紅框處出現(xiàn)Hi表示公鑰添加成功:
ssh -T git@gitee.com
別忘記了yes?。?!
3.4 初始化本地倉庫
選擇一個文件夾作為本地倉庫,并在此文件夾打開Git Bash
也可以使用cd的方式進(jìn)入文件夾(紅框內(nèi)是所在位置)
輸入git init
將文件夾初始為倉庫
顯示下圖即表示成功
2.5 關(guān)聯(lián)倉庫
復(fù)制倉庫SSH,輸入git remote add origin 倉庫SSH
關(guān)聯(lián)遠(yuǎn)程倉庫
2.6 上傳文件
在需上傳文件所在文件夾Bash Here
建立鏈接——add
添加文件夾——commit
標(biāo)注分支——push
推送
git add 文件名
git commit -m "分支名"
git pull --rebase origin master(第一次使用的庫需要這樣建立鏈接)
git push -u origin master (之后不需要-u)
比如我要把1.md
文件放到我的賬號雁丘
的gitee_test_notes
的test
分支中
2.7 Gitee團(tuán)隊協(xié)作
管理—倉庫成員管理–開發(fā)者–添加成員–復(fù)制鏈接
四 報錯原因和解決方法集錦
1. No such file or directory 輸入中文符號或者涉及切換盤符
涉及盤符切換時要分兩步,切換盤符和切換路徑
cd D:
cd Code/Github
2. 初始化git項目時,報錯:Reinitialized existing Git repository in說明已被初始化過了
注意:出現(xiàn).git
文件夾說明初始化成功,有些版本默認(rèn)隱藏,右上角顯示隱藏的項目就能查看
想重新初始化只需把.git
文件刪除
或者可以在當(dāng)前文件下的控制臺中輸入 ls-a
查看,有.git
的話,使用 rm -rf .git
刪除之后重新初始化就可以了
3. Host key verification failed
注意不是連敲兩個回車,第二個回車前輸入yes
4. Nothing to commit, working tree clean
暫存區(qū)沒文件或者文件被git add
過了,只需隨便修改一下該文件就行
5. ! [rejected] master -> master (fetch first) error: failed to push some refs to ‘github.com:yanqiu12138/git_test_notes.git’
報錯是因為,每個倉庫都有一個分支,也可以理解為大倉庫里的小倉庫,我們只是跟線上遠(yuǎn)程倉庫有了關(guān)聯(lián),但沒有跟線上遠(yuǎn)程倉庫的某個分支關(guān)聯(lián),所以我們沒法提交
在終端輸入 git pull --rebase origin master
即可跟剛創(chuàng)建的線上遠(yuǎn)程倉庫的默認(rèn)分支master關(guān)聯(lián)
這時再執(zhí)行一下 git push -u origin master
即可將我們的項目文件上傳到關(guān)聯(lián)的線上遠(yuǎn)程文件中
五 常用推薦
5.1 Google Chrome翻譯及插件Octotree(需要翻墻)
Chrome翻譯在使用Github全英界面時十分方便,各種彈窗、插件、下拉菜單都能迅速自動翻譯
插件Octotree Github的導(dǎo)航欄
可以在設(shè)置
——擴(kuò)展程序
——Chrome應(yīng)用商店
找到,直接應(yīng)用即可
打開代碼庫后,能發(fā)現(xiàn)網(wǎng)頁左側(cè)出現(xiàn)
鼠標(biāo)覆蓋時,會以樹的形式顯示庫的文件
若出現(xiàn)報錯:This branch was either deleted or you don’t have access to it. Please go to Settings to login with GitHub OAuth or input a GitHub access token.(該分支已被刪除或您無權(quán)訪問它。請前往“設(shè)置”以使用 GitHub OAuth 登錄或輸入 GitHub 訪問令牌。)
是因為插件訪問時需要github的令牌,創(chuàng)建一個給他就行
解決方法:點(diǎn)擊設(shè)置點(diǎn)擊鑰匙按鈕
到期日選擇沒有過期時間,選擇范圍全選(企業(yè)用戶自己研究下,個人的話全選完事)
復(fù)制生成的代幣
粘貼到這里,完成
5.2 TortoiseGit
5.2.1 TortoiseGit安裝
小白使用Git Bash維護(hù)Gitee、GitHub神器,是一個開發(fā)的Git版本控制系統(tǒng)的客戶端,Git是命令行操作模式,而TortoiseGit是界面化操作模式
- 下載官網(wǎng)https://tortoisegit.org/download/注意下載相應(yīng)的語言包
先安裝語言包
除了修改路徑一路默認(rèn)
輸入git的Email
后面配置需要使用Putty,默認(rèn)選擇,點(diǎn)擊完成文章來源:http://www.zghlxwxcb.cn/news/detail-767384.html
5.2.2 TortoiseGit配置
在倉庫處右鍵,TortoiseGit——設(shè)置,進(jìn)入配置界面文章來源地址http://www.zghlxwxcb.cn/news/detail-767384.html
到了這里,關(guān)于小白新手一文完成Git+Github/GITEE傻瓜式入門詳解部署教程(內(nèi)含TortoiseGit配置)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!