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
将这个单选框给去掉,再从新试试
发表回复