🍈作者:王甜甜(dabing)

# 怎么将本地项目上传到 github 上?

一、首先你先有个本地项目

二、到 GitHub 上注册个账户,下载 git。该做的都做了(不会就百度)

三、设置 ssh 密钥

1 - 生成 ssh key

在电脑开始处找到的 git 文件下的 git Bash

image-20230405214257517

切换到~/.ssh 目录下,查看有没有密钥的文件。就是这几个文件,或者在电脑文件里找也行

image-20230405214331086

image-20230405214354656

如果没有就生成密钥,具体命令如下:

22616@hexb MINGW64 ~
$ cd ~/.ssh  # 切换到~/.ssh 目录下
22616@hexb MINGW64 ~/.ssh
$ ls	 # 列出该目录的文件,看看有没有 ssh 的 key 文件
known_hosts
22616@hexb MINGW64 ~/.ssh
$ cd ../
22616@hexb MINGW64 ~
$ ssh-keygen -t rsa -C "2261617090@qq.com"   # 如果没有用这个命令生成,下面是打印信息不用管
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/22616/.ssh/id_rsa): #这里让你确认密钥的生成位置,回车即可
Enter passphrase (empty for no passphrase): # 这里让你输入密码,我这里不填密码,不用密码太麻烦,回车即可
Enter same passphrase again: # 回车即可
Your identification has been saved in /c/Users/22616/.ssh/id_rsa
Your public key has been saved in /c/Users/22616/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:QZhUaReYx2/x1Bu14GwFOB9HaTKlAJ56sLydHJhKqfE 2261617090@qq.com
The key's randomart image is:
+---[RSA 3072]----+
|     ..+o*oo.o+=+|
|      o.* =o=+==o|
|       o.= .oO*.o|
|      o *.  +... |
|   . o *So .     |
|    = . = o      |
|   . E . +       |
|                 |
|                 |
+----[SHA256]-----+
22616@hexb MINGW64 ~
$ cd ~/.ssh   # 再切换过来看看
22616@hexb MINGW64 ~/.ssh
$ ls	# 这下有了
id_rsa  id_rsa.pub  known_hosts  known_hosts.old

这下已经生成密钥了,在 C:\Users\22616\.ssh 路径下:打开 id_rsa.pub 这个是公钥,复制内容。

image-20230405214415533

2 - 在 github 上设置 ssh key

image-20230405214431170

image-20230405214451427

ok~~

四、GitHub 上建个仓库

new—> 起个名 ----> 创建

image-20230405214514896

起个名~然后创建就行

image-20230405214600160

五、将本地的项目提交到 GitHub 上

1- 建立 git 仓库,Git Bash 切换到本地项目的根目录下,或者直接到项目目录里,右键 Git Bash 打开

image-20230405214627075 执行 git init 命令,将这个项目变成 git 可以管理的仓库

git init

2 - 将项目的所有文件添加到仓库,add 不仅可以添加单个文件,也可以跟通配符 ,可以跟目录。一个 . 表示当前目录下的所有文件都 add

git add .

3 - 将 add 的文件 commit 到本地仓库

git commit -m "注释信息"

4 - 关联 GitHub 仓库,把你刚刚创建的 GitHub 上的仓库路径复制一下,使用 ssh

image-20230405214649300

执行命令:

git remote add origin git@github.com:dabing85/OA---SSM.git

5 - 在上传代码之前,最好先 pull 一下

git pull origin master

6 - 上传代码到 github 远程仓库上

git push -u origin master

好了,到这就完成了

image-20230405214712683

# 一个很适合练习 git 的地方

网址:https://oschina.gitee.io/learn-git-branching/

我是从 gitee 底下点的,找 git 的学习资料也可以在 gitee 底下找。

记一下我做了啥题,做着做着就忘了~~~(分主要、远程两部分)

一、主要题

  1. git commit 提交代码
  2. git branch newBranch 创建一个名为 newBranch 的新分支
  3. git checkout newBranch 切换到 newBranch 分支
  4. git merge newBranch 将 newBranch 的代码合并到当前分支
  5. 举个例子:将 newBranch 新写的代码提交,然后将它跟主分支 master 合并
git checkout newBranch
git commit
git checkout master
git commit
git merge newBranch
  1. git rebase master 也是合并分支,但是这个合并分支可以看到提交的记录
  2. 相对引用 ^ 可以找到它的父节点,即上次提交的记录。

例如切换到 bugFix 分支的父节点:

image-20230405214736468

git checkout bugFix^
  1. 相对引用 2 ~ 也是用来移动的,让 head 指向它的父节点。因为 ^ 是一次只往回移动一步, ~ + 数字 可以移动多步,使用命令 git checkout head~4

head 本来是指向 c4 节点的,往以前提交的记录移动 4 个位置,到 c0

image-20230405214750503

  1. 使用 ~ 配合 -f 可以强制修改分支的位置

例如 git branch -f master head~3 这个命令的意思是将 master 分支的指向强制移动到 head 节点的第 3 级父级节点处。

原本 master 分支是跟 bugFix 分支一样指向 c4 的,执行命令后,将 master 分支强制移动到了 c1 的提交记录位置去了。

image-20230405214810455

二、远程题(实线是本地仓库,虚线是远程仓库)

  1. git clone - 在本地创建一个远程仓库的拷贝(比如从 github.com
  2. / - 这是远程分支的命令规则,即远程仓库名 / 分支名, 如一般会取名为: origin/master
  3. git fetch - 从远程获取数据,并且本地的远程分支也会更新到最新的位置。

image-20230405214829109

git fetch 完成了两件事:

  • 从远程仓库下载本地
  • 更新远程分支(o/master)

git fetch 通常通过互联网(使用 http:// git:// 协议) 与远程仓库通信

注意 git fetch 只是把远程仓库的数据 下载 下来而已,并没有更新本地仓库的内容

  1. git pull - 相当于 git fetch 和 git merge o/master 两步操作,即先抓取更新,再合并到本地分支。
  2. git push - 正好跟 pull 是相反的,将你的变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录。一旦 git push 成功,你的小伙伴就能在远程仓库下载你的分享成果了。

如果你的 git push 没有带任何参数,那么它会是上传到你配置里默认的仓库里去,在 push.default 中有配置。但是我在我的项目里咋没找到这个配置

  1. 对于有偏差的提交历史,咋办?就是在你 push 之前,你的同事已经在远程仓库上有提交了,如果他修改的 api 你使用到了,那就会发生冲突,你直接 push 是会失败的。

这时,你需要先把远程仓库的数据更新到本地,再把你的本地提交 push 到远程仓库,你的修改就是基于新的远程分支的。具体操作:先 git pull ;再 git push

也可以用 rebase 的方式合并,即先 git pull --rebase;再 git push

![image (https://image.dabing.cool/image/image (6).jpg)](E:\Downloads\image (6).jpg)

  1. 待做题 。。。。。。

# 在 idea 中使用 git?

# 1 - 将你的项目初始化成一个 git 项目:

配置 Git : VCS---->Enable Version ----> 选择 Git

image-20230405215058858

image-20230405215127463

image.png

看控制台的命令, git init , 这个操作会在本地创建一个本地仓库。

# 2- 文件颜色说明:

img image-20230405215228629

红色 证明这个文件只是在工作区,git 是不管理红色文件的, add 之后变成 绿色 表示添加到了暂存区,再 commit 之后会变成普通的 黑色 保存到本地仓库,再 push 之后,会把本地仓库的文件上传到远程仓库并合并。而当你对文件进行过修改后,文件颜色会变成 蓝色

![image (https://image.dabing.cool/image/image (6).jpg)](E:\Downloads\image (6).jpg)

  • Workspace:工作区 (当前用户操作修改的区域)
  • Index / Stage:暂存区 (add 后的区域)
  • Repository:仓库区或本地仓库 (commit 后的区域)
  • Remote:远程仓库 (push 后的区域)

写多了,回来~~~

image-20230405215441031

image-20230405215457668

可以再这看看人家 git 命令怎么用的

# 3 - 将文件 commit 提交到本地仓库:

sorry,我这里图标错啦,✔那个是 commit,↗是 push

image-20230405215520101

# 4 - 将本地仓库的文件 push 上传到远程分支上

要上传到远程上,你首先得先关联你的远程 git。比如 gitee。

在远程仓库上创建一个新项目

将本地项目关联到远程仓库

我在 gitee 上创建,先设置 ssh 公钥,上次已经说过怎么生产公钥,怎么设置了

4.1 设置 ssh 公钥

image-20230405215543595

4.2 创建仓库,并复制仓库 ssh 地址

image-20230405215601714

4.3 关联远程仓库

点击↗右上箭头,点击 Define remote 定义远程,URL 填写远程 ssh 或 https 链接,Name 是远程仓库名称。例如我会区分 gitee 或者 github。

image-20221110220434578

image-20221110220646684

或者用命令

在 idea 上终端执行下列命令,gitee 上也有教的 **

git remote add origin git@gitee.com:hedabing/wiki.git  
# origin 是远程仓库的名字,这样就不用每次都写很长的地址
git push -u origin "master"

image-20230405215654603

就 OK 了。

下次再有新代码,就一样,用 idea 自带的图标,✔commit,↗push 即可。

# 4 - 分支说明

另外,一般工作中不会直接把你写的代码合并到 master 远程主分支上的,

image-20230405215722741

右下角这个树杈,就是指明了你 push 之后会把你的代码上传合并到哪个分支去,也就是 Local Branch 本地分支:hub/master 这里 hub 是远程仓库名字,master 是远程仓库的远程分支。

在工作中呢,需要创建属于你自己的分支,你再本地环境下写好代码之后,push 到你自己的分支下。最后要做合并到 master 主分支下的请求才可以.

例如下面是我的分支,我再这上面上传代码,并不会把代码直接上传到 master 主分支上。

image-20230405215742004

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Dabing-He 微信支付

微信支付