Git克隆和提交代码

本文最后更新于:3 个月前

本文主要总结了git初次使用克隆和提交代码。包括git的安装和配置,项目库的创建、项目的克隆和提交。

Git克隆和提交代码

Progit中文版书籍:https://www.progit.cn/

准备

配置

右键打开git bash,执行仓库初始化命令

1
git init #然后回车

此时会在项目存储库生成.git文件夹及其内容

设置个人信息

设置用户名:

1
git config --global user.name "myName"  

查看用户名:

1
git config user.name

设置邮箱:

1
git config --global user.email "email@example.com"  

查看邮箱:

1
git config user.email

查看配置信息:

1
git config --list #可查看当前用户信息以及其他的一些信息

生成SSH密钥

指定文件名生成密钥(方便查看公钥以后要用的地方),否则文件名将用默认名称

指定密钥文件名为gitee_id_rsa

1
ssh-keygen -t rsa -C 'Gitee SSH Key' -f ~/.ssh/gitee_id_rsa

指定密钥文件名为github_id_rsa

1
ssh-keygen -t rsa -C 'Github SSH Key' -f ~/.ssh/github_id_rsa

常用参数注释:

-t 加/解密算法类型(rsa、ed25519等)

-b 秘钥长度,rsa默认秘钥长度的为 2048

-C 注释,一般是填写用户名

-f 指定生成的秘钥文件名,如果不提供此参数则使用默认文件名,如rsa私钥默认文件名 ~/.ssh/id_rsa ,公钥默认文件名 ~/.ssh/id_rsa.pub


首次生成SSH密钥会有三次询问,根据需要设置,想免密推送就不设置密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
user@DESKTOP MINGW64 ~/Desktop
$ ssh-keygen -t rsa -C 'Gitee SSH Key' -f ~/.ssh/gitee_id_rsa
//生成一对RSA密钥
Generating public/private rsa key pair.
//密钥文件存储位置,直接回车使用默认路径
Enter file in which to save the key (/Users/user/.ssh/gitee_id_rsa):
//设置密码,若直接回车则不设置密码
Enter passphrase (empty for no passphrase):
//确认密码,和上步操作相同
Enter same passphrase again:
//文件存储位置
Your identification has been saved in /c/Users/user/.ssh/gitee_id_rsa
Your public key has been saved in /c/Users/user/.ssh/gitee_id_rsa.pub

The key fingerprint is:
SHA256:wXKzkWFbVONiEtSWPXjcjVy0oONsMYbBU59h7mlMwes Gitee SSH Key
The key's randomart image is:
+---[RSA 3072]----+
| .*++B+B =o|
| o OB.XoO o|
| . Xo+B.*.. |
| o B+.B.. |
| S +.= |
| . .E |
| |
| |
| |
+----[SHA256]-----+

user@DESKTOP MINGW64 ~/Desktop

创建config文件

进入生成的密钥文件夹,创建文件,文件名为config,没有后缀。然后添加以下内容:

1
2
3
4
5
6
7
8
9
10
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

注:Host HostName 填写 git 服务器的域名,IdentityFile 指定私钥的路径

配置公钥到GiteeGithub

  • Gitee SSH配置地址在:个人资料的安全设置–>SSH公钥
  • Github SSH配置地址在:用户头像–>右侧边栏–>Settings–>Access–>SSH and GPG keys

查看生成的SSH公钥:

方式一:用记事本打开公钥文件,全选复制。

方式二:用gitbash查看

查看.ssh文件夹内的所有文件

1
ls ~/.ssh/

输出内容:

1
2
3
user@DESKTOP MINGW64 ~/Desktop
$ ls ~/.ssh/
config gitee_id_rsa.pub github_id_rsa.pub gitee_id_rsa github_id_rsa
  • 公钥文件为:gitee_id_rsa.pubgithub_id_rsa.pub
  • 私钥文件为:gitee_id_rsagithub_id_rsa

查看公钥内容:

1
cat ~/.ssh/gitee_id_rsa.pub

输出内容:

1
2
3
user@DESKTOP MINGW64 ~/Desktop
$ cat ~/.ssh/gitee_id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDchWfkihfqZgdV6/431en8mUN2dk5FtAJ0TkCYQJXq07nn51c9+3qNjbvxxygFDSOFIyG7nb34H2vAk8RL/drODtBPSxNhtxt/IuKSNNHF7hYt+nh8VqbNTMi9fJVEN6+bS7k7gLTY1IVDd4sUjEKw0mYzPgdHCAyubSARUYzATx2SOn9+6UAo1Iq2Ftt0OVMmoWueIe5E9nQWd8IANbrnvs9VbPYVP5fyPQez+/YT4HxGib5+hYXVEsFh/qN3JxbY3uK34mX3jJtz++ULcQPtS8w0AQWR94po6EH1TJvUWMlTOT8liGd9aebuFrZjjVibvQ6kVcApTtEDJXzeb00fqh3waNc8+vTTwpyzHXy8ictcLCbnAFHzgOJpS0tMgkof0U4p3pHrY4umQ5IHkq5aS2WDch6IHVy3mwRdzK91BAzIcNHMnVKAC528WT4KZ3ZdFjC6XxCoiwf6d8MBCxhMnMbm4i284RoQa9LYEuZtzWCcheYpTN7/knfDksrLiEE= Gitee SSH Key

测试

配置完成后回到git bash,测试配置的信息

1
2
ssh -T git@gitee.com
ssh -T git@github.com

成功后,显示如下内容:

测试gitee:

1
2
3
user@DESKTOP MINGW64 ~/Desktop
$ ssh -T git@gitee.com
Hi user! You've successfully authenticated, but GITEE.COM does not provide shell access.

测试github:

1
2
3
user@DESKTOP MINGW64 ~/Desktop
$ ssh -T git@github.com
Hi user! You've successfully authenticated, but GitHub does not provide shell access.

克隆项目到本地

先进入之前创建的项目文件夹

链接到远程库

1
git remote add origin https://git.oschina.net/xxxxxx/xxxxxx.git

克隆项目

1
git clone git@gitee.com:AprilDawn/AprilDawn.gitee.io.git

这样项目就下载到项目仓库了,现在就可以打开项目写代码了。

项目提交

当完成代码后,进入克隆的项目里。

添加文件

添加项目中新增或改动的文件到缓存

1
git add . 

注:点表示添加目录下所有文件到缓存库,如果只添加某个文件,只需把 . 换成你要添加的文件名即可;

添加注释

用以说明此次提交更改了哪些信息

1
git commit -m "新增什么功能,修复了什么BUG等等"

推送提交到远程仓库

这是默认推送到master分支

1
git push

推送到指定分支

1
git push origin 分支名

Git克隆和提交代码
https://superlovelace.top/2023/10/23/Gituse/
作者
棱境
发布于
2023年10月23日
更新于
2023年10月31日
许可协议