1、创建 SSH Key
由于本地Git仓库与Github网站之间传输主要通过SSH加密,因此需要设置SSH Key(注:每次上传可重新设置一个SSH Key或者使用已有SSH Key,在客户端生成公钥,把生成的公钥添加到服务器,以后连接服务器就不用每次都输入用户名和密码了)
1.1 在本地生成 SSH Key
打开终端输入
ssh-keygen -t rsa -C huangjunsheng756@163.com
中间会提示你输入内容,直接 enter 即可,不需要输入,结果如下
过程图待补充
此时在 ~/.ssh 目录下会生成一个 id_rsa.pub 文件,其内容就是前面所需要的 Key,
打开终端,输入以下指令查看生成的 SSH Key
cat ~/.ssh/id_rsa.pub
1.2 在 Github 端设置 SSH Key
登录 GitHub 官网并登录自己的帐号,点击右上角头像,选择 settings,并选择 SSH and GPG keys,点击 New SSH key,显示
此时需要我们设置一个 title 和 key,其中 title 可以随便取,key 就是上一步中我们在 ~/.ssh/id_rsa.pub 文件中生成的内容。
将其内容复制到 Key 中,就成功创建了 SSH Key。
1.3 验证是否成功建立连接
终端输入
ssh -T git@github.com
显示如下内容则表示成功连接 GitHub
hjs@hjs:~/xMate7p_ros$ ssh -T git@github.com
Hi HJSjoker! You've successfully authenticated, but GitHub does not provide shell access.
2、设置本地 Git
2.1 本地安装 Git
sudo apt-get install git
2.2 查看当前 Git 版本
git --version
2.3 设置本地 Git 的用户名和邮箱
git config --global user.name HJSjoker
git config --global user.email huangjunsheng756@163.com
2.4 查看本地 Git 配置信息
git config --list
3、上传项目到 Github
3.1 如果是新创建的项目(没有 .git 文件)
3.1.1 Git 初始化,
在需要上传文件夹的根目录,打开终端并输入以下git指令进行初始化操作,执行后,当前目录会变成一个 Git 仓库,并生成一个隐藏的 .git 文件夹
git init
3.1.2 查看当前分支:
git branch
3.1.3 创建本地分支
git branch <branch-name>
3.1.4 切换分支
git checkout <branch-name>
也可以使用以下命令同时创建并切换到新分支:
git checkout -b <branch-name>
3.1.5 添加远程仓库
git remote add origin git@github.com:HJSjoker/xMate7p_ros.git
添加一个名为 origin 的远程仓库,指向指定的 GitHub 地址。这是将本地仓库与远程仓库关联起来的步骤。
3.1.6 添加更改到暂存区,准备进行提交
git add
使用 git add 命令将更改添加到暂存区。例如,可以运行git add ./
命令将当前目录及其所有子目录中的所有更改(包括新文件、修改的文件和删除的文件)添加到 Git 的暂存区。如果只想暂存特定的文件,可以运行git add <文件路径>
,使相应文件进入暂存区,准备提交到git仓库。
3.1.7 将暂存区的更改提交到本地 Git 仓库,并附上提交信息
git commit -m "描述信息"
在引号中,可以输入一条简短的提交信息,以解释您所做的更改。
注意,git commit 只会提交暂存区中的更改到本地 Git。如果您有其他未暂存的更改,您需要在提交至本地 Git 之前使用 git add 命令将它们添加到暂存区。
3.1.7 推送至远程仓库
在执行 git commit 后,您的更改已经成功提交到本地仓库中。但是,这只是将更改保存在本地,还没有将它们推送到远程仓库(如GitHub)。
git push origin master
将本地 master 分支上所有未推送的提交和更改上传到远程仓库origin的 master 分支。如果远程仓库中已有 master 分支,这个命令会更新远程的 master 分支,使其与本地的 master 分支内容一致。如果远程仓库中没有 master 分支,则会创建一个新的远程 master 分支。
git push -u origin master
-u 参数会将本地的 master 分支与远程的 master 分支建立跟踪关系,以后可以直接使用 git push 和 git pull 而不需要指定远程和分支名称。
完成以上步骤后,您的代码更改就会被推送到GitHub上,并与其他开发人员共享。
3.2 如果是已经存在的项目(已有 .git 文件)
3.2.1 查看当前关联 git 仓库配置信息
导航到本地git仓库所在的目录,使用以下命令查看当前关联的git仓库配置信息,确认已设置了与GitHub仓库的远程连接:
git remote -v
显示:
hjs@hjs:~/xMate7p_ros$ git remote -v
origin git@github.com:HJSjoker/xMate7p_ros.git (fetch)
origin git@github.com:HJSjoker/xMate7p_ros.git (push)
能够看到列出了一个或多个名为 “origin” 的远程仓库,其中包含GitHub仓库的URL。其中 origin 是默认的远程仓库名称,通常指向你克隆的 GitHub 仓库。
命令1 是指从远程仓库 origin 获取数据(fetch)的地址。通过这个地址,你可以下载远程仓库的最新内容到本地;
命令2 是指将本地的更改推送(push)到远程仓库 origin 的地址。通过这个地址,你可以把你的本地提交上传到远程仓库;
这两条命令分别定义了从远程仓库获取数据和将数据推送到远程仓库的路径。
3.2.2 添加远程仓库
如果没有列出任何远程仓库,您需要将GitHub仓库的URL添加为远程仓库。使用以下命令添加远程连接:
git remote add origin git@github.com:HJSjoker/xMate7p_ros.git
3.2.3 删除远程仓库
git remote remove origin
此时再输入 git remote -v 就显示没有远程仓库了,然和重新输入 GitHub 上待更新项目的地址。
3.2.4 查看当前仓库的状态。
确认已经将更新的更改添加到本地仓库的索引中,运行以下命令可以查看仓库中的更改状态,包括已修改但未暂存的文件和已暂存但未提交的文件。
git status
3.2.5 git add
3.2.6 git commit -m "描述信息"
3.2.7 推送至远程仓库
在执行 git commit 后,您的更改已经成功提交到本地仓库中。但是,这只是将更改保存在本地,还没有将它们推送到远程仓库(如GitHub)。
git push origin master
将本地 master 分支上所有未推送的提交和更改上传到远程仓库origin的 master 分支。如果远程仓库中已有 master 分支,这个命令会更新远程的 master 分支,使其与本地的 master 分支内容一致。如果远程仓库中没有 master 分支,则会创建一个新的远程 master 分支。
git push -u origin master
-u 参数会将本地的 master 分支与远程的 master 分支建立跟踪关系,以后可以直接使用 git push 和 git pull 而不需要指定远程和分支名称。
4、 从远程仓库拉取最新更改
git pull origin
在开始编写新的代码或修改现有代码之前,先执行 git pull origin <分支名称>
来拉取最新的更改,并将远程仓库中的更改合并到您的本地分支中。
5 参考博客
Ubuntu系统中本地代码上传至Github库
Ubuntu 上传项目到 GitHub
GitHub仓库代码更新
【备注】本篇文章主要参考以上资料,方便自己回顾查看进行记录,如有侵权可联系本人!