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.comUser 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
将这个单选框给去掉,再从新试试