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 ~/.ssh open ~/.ssh
-
Windows 中文件生成地位,门路如下
C:\\Users\\ 以后用户 \\.ssh
检测配置是否胜利
ssh -T git@github.com # 或 ssh -T git@gitlab.com
多个 git
如果一台机器须要连贯多个 git 平台
- 依据不同平台生成不同 SSH 密钥
- 将生成的公钥增加到对应的平台上
-
在
.ssh
文件夹中新增config
文件并写入一下内容# 一个 GitHub 配置 Host github.com HostName github.com User 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 门路
-
增加到本地仓库
ssh-add ~/.ssh/id_rsa_gitlab
-
测试连贯是否胜利
git 应用
初始化 本地仓库
git init
初始化仓库后会在输出命令所处的文件夹生成一个 .git
文件
克隆代码
克隆代码,前面跟着的是你想克隆代码的我的项目地址
git clone 我的项目地址
提交代码
提交代码至近程仓库
-
查看分支
git branch - 分支名
- 切换分支
切换到你想提交的分支
git checkout 分支名
-
增加文件到暂存区
# 增加指定目录或者指定文件名到暂存区 git add [文件名 1] [文件名 2] ... # 将当前目录下所有文件增加到暂存区 git add .
-
查看文件状态
git status
-
增加提交的形容信息
git commit -m "提交的形容信息"
-
提交到近程
git remote add origin "近程仓库地址"
-
推送代码到近程仓库
git push -u origin 分支名
问题
理论应用 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
将这个单选框给去掉,再从新试试