简介
本文用实例介绍如何新建项目并推送到远程(gitlab等)。
本文的方法适用于所有远程服务,包括:gitlab、gitee、github。
(一般只推送到一个远程即可,本文为了展示,会介绍多种远程git仓库的操作方法,但以gitee为主)。
前提
在此之前,需要先安装git bash,见:Git Bash的安装和使用 – 自学精灵
1.注册远程仓库
下边二选一即可。(gitee比较快,github比较慢)。
- gitee:https://gitee.com/
- github:https://github.com/ (Sign Up是注册,Sign In 是登录)
2.配置用户名与邮箱
如果以前已经配置过了,此步就不需要再操作了。这里用户名和邮箱是随便填的。(用户名会展示在提交记录里,一般写自己名字的首字母,比如李四:ls。邮箱也是在提交记录里)
使用Git Bash运行如下命令。
法1:全局配置方法
git config --global user.name "用户名" git config --global user.email "邮箱"
法2:单独配置方法
有时候,我们想在某个项目里用其他的用户名。比如:在公司里时,有时会修改个人的代码然后提交,想用单独的用户名,不跟公司的项目一样。
git config user.name "Tony" git config user.email "abc@qq.com"
修改完后,会自动在 (当前目录).git/config文件添加如下内容:
[user] name = Tony email = abc@qq.com
3.创建 SSH Key
1.创建 SSH Key(用Git Bash运行如下命令)
ssh-keygen -t rsa -C "邮箱"
这个邮箱必须是自己远程仓库的真实邮箱。
2.确认信息
出现提示“Enter file in which to save the key (/c/Users/xxx/.ssh/id_rsa):”,直接回车表示确定,到如下界面(因为我之前生成过了,所以出现Overwrite提示(本处选择n))。(若没生成过,一路回车,使用默认值即可。)
结果:用户主目录下(对于windows,是c:\Users\xxx\)生成.ssh 目录,其下生成 id_rsa 和 id_rsa.pub 两个文件。(它们是 SSH Key 的秘钥对。 id_rsa 是私钥,不能泄露; id_rsa.pub 是公钥,可以放心地告诉任何人)。
4.在远程里添加 SSH Key
下边二选一即可。(gitee比较快,github比较慢)。
- gitee:右上角头像旁边下三角=> 设置=> 安全设置=> “SSH公钥”=> 添加公钥=> 标题(随便写)=> 公钥:输入id_rsa.pub文件内容。
- github:右上角绿色按钮=> Settings=> SSH keys=> Add SSH key=> “Title”:输名称=> “Key”:输入id_rsa.pub文件内容。
5.创建仓库
- gitee:https://gitee.com/=> 右上角的“+”=> 新建仓库
- github:右上角”+”=> New repository=> 填”Repository name”和”Description”=> 点击”Create repository”
以gitee为例:
6.创建git本地仓库
使用Git Bash执行命令。以gitee为例,它很贴心,上一步执行完把命令都展示出来了:
这个命令是通用的,也适用于github或gitlab!对于其他项目,只需要改一下项目名,将下边命令中的“ant-mall”即可。
mkdir ant-mall cd ant-mall git init touch README.md git add README.md git commit -m "first commit" git remote add origin git@gitee.com:xxx/ant-mall.git git push -u origin "master"
上边各个命令的含义
- mkdir ant-mall:创建一个名为 “ant-mall” 的文件夹(目录)。
- cd ant-mall:进入到 “ant-mall” 文件夹内。
- git init:在当前文件夹中初始化一个新的 Git 仓库,用于版本控制。
- touch README.md:创建一个名为 “README.md” 的空文件。
- git add README.md:将 “README.md” 文件添加到 Git 的暂存区,准备提交。
- git commit -m “first commit”:提交暂存区的文件,并创建一个新的提交记录,此处的提交信息为 “first commit”。
- git remote add origin git@gitee.com:xxx/ant-mall.git:建立本地仓库与远程仓库的关联,将远程仓库 “git@gitee.com:xxx/ant-mall.git” 添加为名为 “origin” 的远程仓库。需要将 “xxx” 替换为你的用户名。
- git push -u origin master:将本地分支 “master” 的内容推送到远程仓库 “origin”。使用选项 “-u” 将本地分支与远程分支关联起来,以后可以简化推送命令。
7.上传代码
此时就可以使用命令操作了,比如:
- git add aa.txt;(将 “aa.txt” 文件添加到 Git 的暂存区(本地仓库))
- git commit -m “添加aa.txt文件”;(提交文件,提交信息为:添加aa.txt文件)
- git push;(将代码推送到远程仓库)
注意事项
SSH 警告
当你第一次使用 Git 的 clone 或者 push 命令连接 GitHub 时,会得到一个警告:
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established. RSA key fingerprint is xx.xx.xx.xx.xx. Are you sure you want to continue connecting (yes/no)?
这是因为 Git 使用 SSH 连接,而 SSH 连接在第一次验证 GitHub 服务器的 Key 时,需要你确认 GitHub 的 Key 的指纹信息是否真的来自 GitHub 的服务器,输入 yes 回车即可。
从现在起,只要本地作了提交,就可以通过以下命令把本地 master 分支的最新修改推送至 GitHub:git push origin master。
为什么 GitHub 需要 SSH Key 呢?
因为 GitHub 需要识别出你推送的提交确实是你推送的,而不是别人冒充的。Git 支持SSH 协议,所以, GitHub 只要知道了你的公钥,当你推送的时候,它就能知道这是你,从而允许你推送(这是非对称加密的功能:私钥对数据进行加密,公钥对加密后的数据进行签名验证,可以确定是否是匹配的私钥加密后的数据)。
当然, GitHub 允许你添加多个 Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的 Key 都添加到 GitHub,就可以在每台电脑上往 GitHub 推送了。
友情提示,在 GitHub 上免费托管的 Git 仓库,任何人都可以看到(但只有自己才能改)。所以,不要把敏感信息放进去。
请先
!