git超详细图文教程——代码github托管,新建项目或本地项目上传

push前准备

  • git除了本地托管代码的强大功能外,当然还包括强大的git的网络代码托管功能了!知名的便是国际的github和国内的码云了!
  • 那么我们首先需要一个网络上的代码仓库,即先再github上注册一个账户或者码云上的也可以,我这里以github为例进行介绍。

创建你的网络管理仓库

git超详细图文教程——代码github托管,新建项目或本地项目上传

  • 值得注意的是下面有个gitignore忽略部分上传的文件:
    git超详细图文教程——代码github托管,新建项目或本地项目上传

以nodejs为例,node项目的开发会包含很多的包文件,动辄上万的文件数量,而上传的读写速度就会收到严重影响,所以,设置了忽略文件就会自动屏蔽提交里的这些文件了。

  • 创建完成后如果你的仓库没有选择添加readme文件或者签名文件等,就会弹出一个页面,即你的项目仓库,里面还有几本的git命令,下面我们就结合案例来使用这些命令。

git超详细图文教程——代码github托管,新建项目或本地项目上传

将本地代码托管到github

如果本地我们没有项目,需要新建一个代码仓库

  • 注意下面图片的两个地址:https地址和ssh地址,会有大用!!!

git超详细图文教程——代码github托管,新建项目或本地项目上传

关联我们的仓库

  • 我们先复制上面的https地址以我的为例就是:
https://github.com/WytheO/gitTest.git

当然,你要复制你的项目仓库的地址。

  • 如果你没有本地代码仓库,按照github给你的提示在本地创建一个仓库,注意,它会在你的本地当前路径上创建一个仓库:
    git超详细图文教程——代码github托管,新建项目或本地项目上传
echo "# gitTest" >> README.md # 在仓库里输出一个名字为README.md的文件,有一行文字为# gitTest,因为md是markdown语法,所以看到的是h1标题的文字
git init
git add . # 默认提交所有修改入管理器
git commit -m "my first commit " # 提交入暂存区 -m 引入标注,引号内为标注内容
git remote add Wythe https://github.com/WytheO/gitTest.git #Wythe 是后面那串网址的别名,提交就输别名就可以了,不然每次都要把网址输一遍很麻烦
git push -u Wythe master #Wythe 就代表那个网址,master代表分支为主分支
# 如果你是clone的别人的代码,上传时请创建分支(branch)

git超详细图文教程——代码github托管,新建项目或本地项目上传

git超详细图文教程——代码github托管,新建项目或本地项目上传

提交成功后就是这样,不过我这个账号以前配置过sshkey,可以不用输入密码,如果么有配置sshkey的话,push代码到远程仓库是需要输入密码的!

在push之前又一个配置本地用户信息命令请看我的 上一个教程,本地用户信息需要和你创建的代码仓库信息一致:
git超详细图文教程——代码github托管,新建项目或本地项目上传
git超详细图文教程——代码github托管,新建项目或本地项目上传

如果我们本来就有一个项目并且初始化成为了本地托管仓库

  • 我先重新创建一个新的空的仓库;
    git超详细图文教程——代码github托管,新建项目或本地项目上传

  • 如果我们本地本来就有代码怎么办?直接在项目的根目录init为git仓库,将代码push到一个新的额干净的远程仓库即可,比如我上一个教程里的本地仓库我要提交到这个教程里新创建的远程仓库里!
    这里接上一个教程

  • 加入下面就是我已经准备好的项目:

git config --list # 我们先查看该仓库的配置信息

对比信息,我们发现,我们没有关于那个网址起的别名信息,所以不能直接用Wythe进行push代码。
git超详细图文教程——代码github托管,新建项目或本地项目上传

git超详细图文教程——代码github托管,新建项目或本地项目上传

  • 首先我们拥有很多commit的提交历史,拥有很多版本信息,接着就是将git仓库地址配置出来:
 git remote add Wythe2 https://github.com/WytheO/newTest.git
 # 这里请换成你们自己的git地址

这样我们就会看到,最下面出现了git地址的配置信息。
git超详细图文教程——代码github托管,新建项目或本地项目上传

  • 然后我来做一个提交:
git push -u Wythe2 master

git超详细图文教程——代码github托管,新建项目或本地项目上传

  • 提交后的结果:
    git超详细图文教程——代码github托管,新建项目或本地项目上传

没错,gitpush只会讲最近的一次commit版本上传到远程仓库,即当前有commit变化的暂存区,所以,以前版本因为被新的commit覆盖,所以不会被直接上传。

解决办法:我们是用git reset HEAD id/^回退到历史的某个版本,重新进行提交:

下面这就是错误的版本信息
git超详细图文教程——代码github托管,新建项目或本地项目上传

git超详细图文教程——代码github托管,新建项目或本地项目上传

git超详细图文教程——代码github托管,新建项目或本地项目上传