本地仓库:
a. git init
在本地创建一个Git仓库;
b. git add .
将项目添加到暂存区;
c. git commit -m "注释内容"
将项目提交到Git仓库;
远程仓库:
a. 添加SSH KEY;
b. 新建repositories;
本地仓库:
a. git remote add origin [email protected]:UserName/projectName.git
将本地仓库与远程仓库关联;
b. git push -u origin master
将本地项目推送到远程仓库。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zg1kVPdL-1626577095172)(https://segmentfault.com/img/remote/1460000022863920)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1tqpeqXQ-1626577095175)(https://segmentfault.com/img/remote/1460000022863922)]
此步骤一般时刚刚安装完Git后设置的,此【用户信息】是以后你每次 Git 的提交都会使用这些信息。在 Git 终端输入一下命令即可设置你的用户信息。
$ git config --global user.name "name"
$ git config --global user.email "[email protected]"
可以通过以下命令,查看当前的设置:
$ git config --list
如果已经设置,则跳过到下一步。
运行以下命令:
$ git init
可以看到Git已经把该路径变成一个Git仓库,所以之后不能再修改当前文件夹的名称,否则会有出错。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rRdg8w6M-1626577095177)(https://segmentfault.com/img/remote/1460000022863917)]
同时,当前目录新增了一个.git文件夹(如果没有看到,可能是window把它隐藏了),如图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZUnZRl8E-1626577095179)(https://segmentfault.com/img/remote/1460000022863915)]
注意:此时的Git仓库还是一个空的仓库,即使当前已经有其他文件了,但是仅仅在本地而已。
可以以下命令,查看当前的状态
$ git status
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B1imtyEd-1626577095181)(https://segmentfault.com/img/remote/1460000022863918)]
通过命令:
$ git add README.md
运行完上面的命令后,我们可以再通过git status查看当前的状态:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nBpc2L5R-1626577095182)(https://segmentfault.com/img/remote/1460000022863923)]
好了,发现README.md文件已经成功添加到。
如果需要把当前目录的所有文件都添加到暂存区的话,可以使用命令:
$ git add .
PS:add后面跟着一个空格,再跟一个点。
Q1:如果不小心把不需要的文件添加到暂存区,怎么撤回?
比如我不小心把依赖包文件夹node_modules(这个很大而且没必要git管理这份代码)add了,怎么撤回这个文件?
第一种方法:
$ git reset HEAD -- node_modules
注意:双杠–后面有一个空格,后面再跟文件名。
第二种方法:
$ git rm -r --cached node_modules
Q2:如果我一开始就不想add node_modules文件,那我应该怎么把除了node_modules的其他文件add?
Git提供了忽略文件.gitignore,当我们用git add .时,Git会自动排除.gitignore文件里匹配到的文件。
在当前文件夹新建一个后缀名为gitignore的文件,如图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7rF5UMVz-1626577095183)(https://segmentfault.com/img/remote/1460000022863916)]
用记事本打开该文件,将node_modules填进去
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QZenkJmz-1626577095185)(https://segmentfault.com/img/remote/1460000022863919)]
这样,我们执行git add .就不会把node_modules文件包含进去。得劲。
$ git commit -m "这是提交时的注释"
-m后面跟的是本次提交的注释内容,一般是写本次提交或修改了什么,方便将来自己或他人查看。
由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以连接时需要两边都有SSH KEY。
创建之前先看看你的电脑有没有创建过SSH KEY。先看一下你C盘用户目录下有没有.ssh目录,有的话里面有没有id_rsa和id_rsa.pub这两个文件,有就跳到下一步,没有就通过下面命令创建
$ ssh-keygen -t rsa -C "[email protected]"
然后一路回车。这时你就会在用户下的.ssh目录里找到id_rsa和id_rsa.pub这两个文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NGf2Mjtr-1626577095187)(https://segmentfault.com/img/remote/1460000022863921)]
登录Github,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容全部复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密。具体步骤也可看下面:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7ghKtL8g-1626577095188)(https://segmentfault.com/img/remote/1460000022863924)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MxJwO4pO-1626577095190)(https://segmentfault.com/img/remote/1460000022863928)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DXKpNK69-1626577095191)(https://segmentfault.com/img/remote/1460000022863925)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PaTwenSQ-1626577095192)(https://segmentfault.com/img/remote/1460000022863926)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JQ4VM0HR-1626577095193)(https://segmentfault.com/img/remote/1460000022863927)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iplN5Oql-1626577095194)(https://segmentfault.com/img/remote/1460000022863930)]
创建好之后,就跳到这个界面:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qAA6EwNp-1626577095195)(https://segmentfault.com/img/remote/1460000022863929)]
在本地仓库执行:
$ git remote add origin [email protected]:BNK-ALONG/teach-design-platform.git
origin后面就是刚刚创建好的远程仓库的地址。
刚刚我们只是将本地仓库和远程仓库进行了关联,但是两者的东西还没有同步,远程仓库还是空的。
通过以下命令:
$ git push -u origin master
由于新建的远程仓库是空的,所以要加上-u这个参数,等远程仓库里面有了内容之后,下次再从本地库上传内容的时候只需下面这样就可以了:
$ git push origin master
或者可以更简单的:
$ git push
当然,这样会默认推送到主支干master。
push完成之后:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5eFmBKUd-1626577095197)(https://segmentfault.com/img/remote/1460000022863931)]
这时候再重新进入刚才在Github新建的仓库,就可以看到本地仓库的项目已经上传成功了!大功告成
至此,将本地的一个新项目上传到Github的全过程就完成啦。
补坑:
如果在第9步新建一个Github仓库时,选择了
Initialize this repository with a README
(就是创建仓库的时候自动给你创建一个README.md文件),那么在push的时候,会报错
error:failed to push some refs to https://github.com/BNK-ALONG/teach-design-platform.git
这是因为新建的Github仓库的README.md文件不在本地仓库的目录中,这是问题其实在多人协作开发中是一定存在的,多个人共同关联一个远程仓库,在把你本地的修改上传(push)之前,要把别人的代码更新到自己的本地仓库,不然怎么达到协作开发呢?
将远程仓库最新的更新拉取到本地,并合并到主支干:
$ git pull --rebase origin master
这时再重新push就可以成功了。