🍈作者:王甜甜(dabing)
# 怎么将本地项目上传到 github 上?
一、首先你先有个本地项目
二、到 GitHub 上注册个账户,下载 git。该做的都做了(不会就百度)
三、设置 ssh 密钥
1 - 生成 ssh key
在电脑开始处找到的 git 文件下的 git Bash
切换到~/.ssh 目录下,查看有没有密钥的文件。就是这几个文件,或者在电脑文件里找也行
如果没有就生成密钥,具体命令如下:
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
这个是公钥,复制内容。
2 - 在 github 上设置 ssh key
ok~~
四、GitHub 上建个仓库
new—> 起个名 ----> 创建
起个名~然后创建就行
五、将本地的项目提交到 GitHub 上
1- 建立 git 仓库,Git Bash 切换到本地项目的根目录下,或者直接到项目目录里,右键 Git Bash 打开
执行
git init
命令,将这个项目变成 git 可以管理的仓库
git init |
2 - 将项目的所有文件添加到仓库,add 不仅可以添加单个文件,也可以跟通配符 ,可以跟目录。一个 .
表示当前目录下的所有文件都 add
git add . |
3 - 将 add 的文件 commit 到本地仓库
git commit -m "注释信息" |
4 - 关联 GitHub 仓库,把你刚刚创建的 GitHub 上的仓库路径复制一下,使用 ssh
执行命令:
git remote add origin git@github.com:dabing85/OA---SSM.git |
5 - 在上传代码之前,最好先 pull 一下
git pull origin master |
6 - 上传代码到 github 远程仓库上
git push -u origin master |
好了,到这就完成了
# 一个很适合练习 git 的地方
网址:https://oschina.gitee.io/learn-git-branching/
我是从 gitee 底下点的,找 git 的学习资料也可以在 gitee 底下找。
记一下我做了啥题,做着做着就忘了~~~(分主要、远程两部分)
一、主要题
git commit
提交代码git branch newBranch
创建一个名为 newBranch 的新分支git checkout newBranch
切换到 newBranch 分支git merge newBranch
将 newBranch 的代码合并到当前分支- 举个例子:将
newBranch
新写的代码提交,然后将它跟主分支master
合并
git checkout newBranch | |
git commit | |
git checkout master | |
git commit | |
git merge newBranch |
git rebase master
也是合并分支,但是这个合并分支可以看到提交的记录- 相对引用
^
可以找到它的父节点,即上次提交的记录。
例如切换到 bugFix 分支的父节点:
git checkout bugFix^ |
- 相对引用 2
~
也是用来移动的,让 head 指向它的父节点。因为^
是一次只往回移动一步,~
+数字
可以移动多步,使用命令git checkout head~4
head 本来是指向 c4 节点的,往以前提交的记录移动 4 个位置,到 c0
- 使用
~
配合-f
可以强制修改分支的位置
例如 git branch -f master head~3
这个命令的意思是将 master 分支的指向强制移动到 head 节点的第 3 级父级节点处。
原本 master 分支是跟 bugFix 分支一样指向 c4 的,执行命令后,将 master 分支强制移动到了 c1 的提交记录位置去了。
二、远程题(实线是本地仓库,虚线是远程仓库)
git clone
- 在本地创建一个远程仓库的拷贝(比如从 github.com)/
- 这是远程分支的命令规则,即远程仓库名 / 分支名, 如一般会取名为:origin/master
git fetch
- 从远程获取数据,并且本地的远程分支也会更新到最新的位置。
git fetch 完成了两件事:
- 从远程仓库下载本地
- 更新远程分支(o/master)
git fetch
通常通过互联网(使用 http://
或 git://
协议) 与远程仓库通信
注意 git fetch 只是把远程仓库的数据 下载
下来而已,并没有更新本地仓库的内容
git pull
- 相当于 git fetch 和 git merge o/master 两步操作,即先抓取更新,再合并到本地分支。git push
- 正好跟 pull 是相反的,将你的变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录。一旦 git push 成功,你的小伙伴就能在远程仓库下载你的分享成果了。
如果你的 git push 没有带任何参数,那么它会是上传到你配置里默认的仓库里去,在 push.default 中有配置。但是我在我的项目里咋没找到这个配置
- 对于有偏差的提交历史,咋办?就是在你 push 之前,你的同事已经在远程仓库上有提交了,如果他修改的 api 你使用到了,那就会发生冲突,你直接 push 是会失败的。
这时,你需要先把远程仓库的数据更新到本地,再把你的本地提交 push 到远程仓库,你的修改就是基于新的远程分支的。具体操作:先 git pull ;再 git push
也可以用 rebase 的方式合并,即先 git pull --rebase;再 git push
- 待做题 。。。。。。
# 在 idea 中使用 git?
# 1 - 将你的项目初始化成一个 git 项目:
配置 Git : VCS---->Enable Version ----> 选择 Git
看控制台的命令, git init
, 这个操作会在本地创建一个本地仓库。
# 2- 文件颜色说明:
红色
证明这个文件只是在工作区,git 是不管理红色文件的, add
之后变成 绿色
表示添加到了暂存区,再 commit
之后会变成普通的 黑色
保存到本地仓库,再 push
之后,会把本地仓库的文件上传到远程仓库并合并。而当你对文件进行过修改后,文件颜色会变成 蓝色
- Workspace:工作区 (当前用户操作修改的区域)
- Index / Stage:暂存区 (add 后的区域)
- Repository:仓库区或本地仓库 (commit 后的区域)
- Remote:远程仓库 (push 后的区域)
写多了,回来~~~
可以再这看看人家 git 命令怎么用的
# 3 - 将文件 commit 提交到本地仓库:
sorry,我这里图标错啦,✔那个是 commit,↗是 push
# 4 - 将本地仓库的文件 push 上传到远程分支上
要上传到远程上,你首先得先关联你的远程 git。比如 gitee。
在远程仓库上创建一个新项目
将本地项目关联到远程仓库
我在 gitee 上创建,先设置 ssh 公钥,上次已经说过怎么生产公钥,怎么设置了
4.1 设置 ssh 公钥
4.2 创建仓库,并复制仓库 ssh 地址
4.3 在 idea 上执行下列命令,gitee 上也有教的
git remote add origin git@gitee.com:hedabing/wiki.git | |
# origin 是远程仓库的名字,这样就不用每次都写很长的地址 | |
git push -u origin "master" |
就 OK 了。
下次再有新代码,就一样,用 idea 自带的图标,✔commit,↗push 即可。
# 4 - 分支说明
另外,一般工作中不会直接把你写的代码合并到 master 远程主分支上的,
右下角这个树杈,就是指明了你 push 之后会把你的代码上传合并到哪个分支去,也就是 Local Branch 本地分支:hub/master 这里 hub 是远程仓库名字,master 是远程仓库的远程分支。
在工作中呢,需要创建属于你自己的分支,你再本地环境下写好代码之后,push 到你自己的分支下。最后要做合并到 master 主分支下的请求才可以.
例如下面是我的分支,我再这上面上传代码,并不会把代码直接上传到 master 主分支上。