git
git是一個(gè)開(kāi)源的分布式版本控制系統(tǒng) (VCS),可以有效、高速地處理從很小到非常大的項(xiàng)目版本管理。
用于跟蹤源代碼更改。它允許多個(gè)開(kāi)發(fā)人員一起進(jìn)行非線性開(kāi)發(fā)。
git安裝
Linux、macOS、Windows都可以在官網(wǎng)下載對(duì)應(yīng)平臺(tái)安裝包,
下載地址:https://git-scm.com/downloads
下面介紹三種平臺(tái)的其它安裝方式:
Linux上安裝
使用?dnf
:
sudo dnf install git-all
如果你在基于 Debian 的發(fā)行版上,如 Ubuntu,請(qǐng)使用?apt
:
sudo apt install git-all
macOS 上安裝
在安裝 Xcode Command Line Tools。 Mavericks (10.9) 或更高版本的系統(tǒng)中,在 Terminal 里嘗試首次運(yùn)行?git?命令即可。
git --version
如果沒(méi)有安裝過(guò)命令行開(kāi)發(fā)者工具,將會(huì)提示你安裝。
Windows 上安裝
去Git 官方網(wǎng)站下載。 下載地址:?https://git-scm.com/download/win
國(guó)內(nèi)鏡像:https://npm.taobao.org/mirrors/git-for-windows/
檢測(cè)安裝
檢測(cè)安裝成功可以運(yùn)行 git
命令測(cè)試是否安裝成功
git
git配置
當(dāng)你安裝好了git后,在Windows上會(huì)有三個(gè)內(nèi)容
- Git Bash,是Git配套的一個(gè)控制臺(tái)
- Git CMD(Deprecated),是通過(guò)CMD使用Git
- Git GUI,是Git的可視化操作工具
下列g(shù)it操作示例使用GitHub和GitLab舉例
配置Github用戶名和賬號(hào)
這一步前需要先注冊(cè)好Github賬號(hào),GitLab操作和GitHub一樣
# 配置賬號(hào)git config --global user.name "GitHub賬號(hào)"# 配置郵箱git config --global user.email "GitHub注冊(cè)郵箱"
查看配置
# 列出當(dāng)前配置:git config --list# 列出repository配置:git config --local --list# 列出全局配置:git config --global --list# 列出系統(tǒng)配置:git config --system --list
生成ssh密鑰
# 全局生成密鑰ssh-keygen -t rsa# 根據(jù)郵箱密鑰ssh-keygen -t rsa -C “注冊(cè)GitHub/GitLab的郵箱”# 可以自定義生成文件名ssh-keygen -t rsa -C “注冊(cè)GitHub/GitLab的郵箱” -f ~/.ssh/id_rsa_gitlab
當(dāng)輸入命令后會(huì)提示三次需要輸入密碼,直接敲回車。
運(yùn)行生成SSH密鑰命令會(huì)在本地 .ssh
文件夾生成兩個(gè)文件
id_rsa // 密鑰
id_rsa.pub //公鑰添加SSH
將生成的ssh公鑰
id_rsa.pub
復(fù)制到平臺(tái)的ssh密鑰中,路徑:用戶設(shè)置->SSH密鑰
- Linux中文件生成位置,可以通過(guò)下列命令進(jìn)入
cd ~/.ssh
- macOS中文件生成位置,也可以通過(guò)下面命令進(jìn)入或打開(kāi),
cd ~/.sshopen ~/.ssh
- Windows中文件生成位置,路徑如下
C://Users//當(dāng)前用戶//.ssh
檢測(cè)配置是否成功
ssh -T [email protected]# 或ssh -T [email protected]
多個(gè)git
如果一臺(tái)機(jī)器需要連接多個(gè)git平臺(tái)
- 根據(jù)不同平臺(tái)生成不同SSH密鑰
- 將生成的公鑰添加到對(duì)應(yīng)的平臺(tái)上
- 在
.ssh
文件夾中新增config
文件并寫入一下內(nèi)容# 一個(gè)GitHub配置Host github.comHostName github.comUser github用戶名IdentityFile ~/.ssh/id_rsa
一個(gè)GitLab配置
Host gitlab地址
HostName gitlab.com
User gitlab用戶名
IdentityFile ~/.ssh/id_rsa_gitlab
配置文件參數(shù)
Host : Host可以看作是一個(gè)你要識(shí)別的模式,對(duì)識(shí)別的模式,進(jìn)行配置對(duì)應(yīng)的的主機(jī)名和ssh文件
HostName : 要登錄主機(jī)的主機(jī)名
User : 登錄名
IdentityFile : 指明上面User對(duì)應(yīng)的identityFile路徑
4. 添加到本地倉(cāng)庫(kù)
ssh-add ~/.ssh/id_rsa_gitlab
5. 測(cè)試連接是否成功# git使用## 初始化 本地倉(cāng)庫(kù)
git init
初始化倉(cāng)庫(kù)后會(huì)在輸入命令所處的文件夾生成一個(gè)`.git`文件## 克隆代碼克隆代碼,后面跟著的是你想克隆代碼的項(xiàng)目地址
git clone 項(xiàng)目地址
克隆分支代碼
git clone -b 分支名 項(xiàng)目地址
## 提交代碼提交代碼至遠(yuǎn)程倉(cāng)庫(kù)1. 查看分支
git branch -分支名
2. 切換分支切換到你想提交的分支
git checkout 分支名
3. 添加文件到暫存區(qū)
添加指定目錄或者指定文件名到暫存區(qū)
git add [文件名1] [文件名2] ...
將當(dāng)前目錄下所有文件添加到暫存區(qū)
git add .
4. 查看文件狀態(tài)
git status
5. 添加提交的描述信息
git commit -m "提交的描述信息"
6. 提交到遠(yuǎn)程
git remote add origin "遠(yuǎn)程倉(cāng)庫(kù)地址"
7. 推送代碼到遠(yuǎn)程倉(cāng)庫(kù)
git push -u origin 分支名
## 命令總結(jié)| 命令 | 解釋 || :----: | :----: || git rm | 刪除工作區(qū)文件 || git mv | 移動(dòng)或重命名文件 || git log | 查看歷史提交記錄 |# 問(wèn)題實(shí)際使用git的過(guò)程中,會(huì)出先各種各樣問(wèn)題,本文記錄下作者出現(xiàn)問(wèn)題較多的一些問(wèn)題,后續(xù)會(huì)更新。## 權(quán)限被拒絕,請(qǐng)重試___Permission denied, please try again.___* 問(wèn)題描述:> 在 gitlab 倉(cāng)庫(kù)已經(jīng)添加了 ssh key 之后,用 vsCode 或者 sourcetree 操作倉(cāng)庫(kù)時(shí),會(huì)彈出提示* 問(wèn)題分析:> mac每次重啟機(jī)器都需要 root 密碼獲取 ~/.ssh/id_rsa.pub 的 key* 問(wèn)題日志:> Git: Permission denied, please try again.* 解決辦法:
ssh-add ~/.ssh/你生成ssh密鑰文件名
例:
ssh-add ~/.ssh/id_rsa
ssh-add 這個(gè)命令不是用來(lái)永久性的記住你所使用的私鑰的。實(shí)際上,它的作用只是把你指定的私鑰添加到 ssh-agent 所管理的一個(gè) session 當(dāng)中,這個(gè)方法不是一勞永逸## 由于電子郵件隱私限制,推送被拒絕___Your push would publish a private email address.___* 問(wèn)題描述:> 在推送代碼的時(shí)候出現(xiàn)問(wèn)題,拉取代碼可以拉取* 問(wèn)題分析:> 由于電子郵箱的限制* 問(wèn)題日志:> ! [remote rejected] main -> main (push declined due to email privacy restrictions)* 解決辦法:`setting`->`emails`->`Keep my email address private` 將這個(gè)單選框給去掉,再重新試試