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