在window把自己的项目上传到github

作为一个开发者,写博客,上传项目到github好像是不可不会的技能,很多有经验的老司机都会这么建议你。本宝宝第一次要把项目传到github的时候,确实有点蒙蔽,什么鬼,传个东西有必要这么难吗?

git 是有gui的,但是网上一搜,一大堆,这里宝宝介绍一个比较好用也是使用人数比较多的gui,叫做Source Tree,大家自己去网上下载下很快的,今天宝宝要说的是用命令行上传代码,很高大上有木有?是时候装一波b了。

首先根据下图的操作创建一个仓库,这是干什么的?可以简单粗暴的理解为一个项目一个仓库就行了。


创建成功后看到到下图,这图的那个地址先记住了,一会可是要用的呢,这是这个仓库的地址,我们项目要传到这里来。



然后就去下载一个git,可以网上搜索git下载,会有很多教程,这里宝宝贴出官方的下载地址:https://git-scm.com/downloads/    还有一个网上找的安装教程:http://jingyan.baidu.com/article/7f766dafba84f04101e1d0b0.html

接着打开Git的安装路径,打开git-bash.exe,然后会发现打开了一个打命令行的东西。

就是这个东东,我们就是要在这里写命令行。


宝宝的项目放在J:\MVPDemo\MVPDemo ,我们第一步就是要进入这个目录下,cd 是用来进入某个目录的,白色的字是宝宝打的(前面那个美元符号是自动生成的),然后现在就进入了我们要上传路径的目录下。


第二步输入git init,如下图所示,这个意思是在当前项目的目录中生成本地的git管理(会发现在当前目录下多了一个.git文件夹


第三步输入git add.,这个是将项目上所有的文件添加到仓库中的意思,如果想添加某个特定的文件,只需把.换

成这个特定的文件名即可。

第四步输入git commit -m "first commit",表示你对这次提交的注释,双引号里面的内容可以根据个人的需要
改。
第五步输入git remote add origin https://自己的仓库url地址(上面有说到) 将本地的仓库关联到github上,
这里宝宝输入的是git remote add origin https://github.com/SilasGao/MVPDemo.git
最后一步,输入git push -u origin master,这是把代码上传到github仓库的意思。
执行完后,如果没有异常,会等待几秒,然后跳出一个让你输入Username和Password 的窗口,你只要输入
github的登录账号和密码就行了。
   

账号密码都正确的话,会看到下面这么一个东西,进度还会跳,这个是上传过程中的进度,这个过程可能有点慢,有时候得等个10几分钟,这时候去github上面看,还是什么都没有的,所以大兄弟别着急,先做点其他的事,晚点再来看看。

上传成功后,就是这个样子了。


最后附上一个别人写的常见的git错误


亲测成功的步骤:

1.配置(已配置过可忽略这一步,具体可通过git config --list来查看有没有配置)

     Git跟踪谁修改了项目,哪怕参与项目开发的只有一个人。为此,Git需要知道你的用户名和电子邮件。你必须提供用户名,但可以使用虚构的电子邮件地址:

git config --global user.name "Username"
git config --global user.email "[email protected]"

 注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

2.创建项目(如果没有项目的话可使用这一步)

我们来创建一个要进行版本控制的项目(又称版本库)。在你的系统创建一个文件夹,并将其命名为learngit。

我创建learngit的程序如下:

mkdir learngit #创建文件learngit
cd learngit #进入learngit文件里面
pwd  #显示learngit的存在目录

3.初始化仓库

我是上传项目到,即已有项目,根据前面所说的,先定位到具体项目文件夹目录。并通过git init命令把这个目录变成Git可以管理的仓库。瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。要是删除这个东西,则丢弃项目的所有记录。

如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。

也不一定必须在空目录下创建Git仓库,选择一个已经有东西的目录也是可以的。不过,不建议你使用自己正在开发的公司项目来学习Git,否则造成的一切后果概不负责。

4.检查状态

在执行其他操作之前,先来看一下状态:

$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
文件列表
nothing added to commit but untracked files present (use "git add" to track)

在Git中,分支是项目的一个版本,从这里的输出我们可以知道,我么位于分支的master。

我们每次查看项目的状态时候,输出的都是我们位于分支master上,接下里的输出表明,我们将进行初始项目,提交是项目在特定时间的快照。

Git指出了项目中未被跟踪的文件,因为我们还没有告诉他要跟踪那些文件,接下里我们被告知没有任何东西添加到当前提交里面,但我们可能需要将为跟踪的文件加入仓库

5.将文件加入到仓库

$ git add .
$ git status
On branch master
No commits yet
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   .classpath
        new file:   .project
        new file:   .settings/.jsdtscope
        new file:   .settings/org.eclipse.jdt.core.prefs
        new file:   .settings/org.eclipse.wst.common.component
        new file:   .settings/org.eclipse.wst.common.project.facet.core.xml
        new file:   .settings/org.eclipse.wst.jsdt.ui.superType.container
        new file:   .settings/org.eclipse.wst.jsdt.ui.superType.name
        new file:   README
        new file:   README.bak
        new file:   WebContent/META-INF/MANIFEST.MF
        new file:   WebContent/WEB-INF/lib/cas-client-core-3.2.1.jar
        new file:   WebContent/WEB-INF/lib/commons-beanutils-1.8.3.jar
        new file:   WebContent/WEB-INF/lib/commons-logging-1.2.jar
        new file:   WebContent/WEB-INF/lib/javax.servlet-api-3.1.0.jar
        new file:   WebContent/WEB-INF/lib/javax.servlet.jsp-api-2.3.1.jar
        new file:   WebContent/WEB-INF/lib/jstl-1.2.jar
        new file:   WebContent/WEB-INF/lib/log4j-1.2.17.jar
        new file:   WebContent/WEB-INF/lib/mysql-connector-java-5.1.36.jar
        new file:   WebContent/WEB-INF/lib/shiro-cas-1.2.3.jar
        new file:   WebContent/WEB-INF/lib/shiro-core-1.2.3.jar
        new file:   WebContent/WEB-INF/lib/shiro-web-1.2.3.jar
        new file:   WebContent/WEB-INF/lib/slf4j-api-1.7.12.jar
        new file:   WebContent/WEB-INF/shiro.ini
        new file:   WebContent/WEB-INF/web.xml
        new file:   WebContent/error.jsp
        new file:   WebContent/success.jsp
        new file:   build/classes/com/java/dao/UserDao.class
        new file:   build/classes/com/java/entity/User.class
        new file:   build/classes/com/java/realm/ShiroRealm.class
        new file:   build/classes/com/java/util/DbUtil.class
        new file:   src/com/java/dao/UserDao.java
        new file:   src/com/java/entity/User.java
        new file:   src/com/java/realm/ShiroRealm.java
        new file:   src/com/java/util/DbUtil.java

命令  git add .   将项目中未被跟踪的文件都加入到仓库中,它不提交这些文件,而只是让git开始关注他们。现在我们检查这个项目的状态,发现Git找到了需要提交的文件的一些修改,标签 new file  表示这些文件是新加入的。

6.执行提交

$ git commit -m "started project"
[master (root-commit) 81e0889] started project
 35 files changed, 406 insertions(+)
 create mode 100644 .classpath
 create mode 100644 .project
 create mode 100644 .settings/.jsdtscope
 create mode 100644 .settings/org.eclipse.jdt.core.prefs
 create mode 100644 .settings/org.eclipse.wst.common.component
 create mode 100644 .settings/org.eclipse.wst.common.project.facet.core.xml
 create mode 100644 .settings/org.eclipse.wst.jsdt.ui.superType.container
 create mode 100644 .settings/org.eclipse.wst.jsdt.ui.superType.name
 create mode 100644 README
 create mode 100644 README.bak
 create mode 100644 WebContent/META-INF/MANIFEST.MF
 create mode 100644 WebContent/WEB-INF/lib/cas-client-core-3.2.1.jar
 create mode 100644 WebContent/WEB-INF/lib/commons-beanutils-1.8.3.jar
 create mode 100644 WebContent/WEB-INF/lib/commons-logging-1.2.jar
 create mode 100644 WebContent/WEB-INF/lib/javax.servlet-api-3.1.0.jar
 create mode 100644 WebContent/WEB-INF/lib/javax.servlet.jsp-api-2.3.1.jar
 create mode 100644 WebContent/WEB-INF/lib/jstl-1.2.jar
 create mode 100644 WebContent/WEB-INF/lib/log4j-1.2.17.jar
 create mode 100644 WebContent/WEB-INF/lib/mysql-connector-java-5.1.36.jar
 create mode 100644 WebContent/WEB-INF/lib/shiro-cas-1.2.3.jar
 create mode 100644 WebContent/WEB-INF/lib/shiro-core-1.2.3.jar
 create mode 100644 WebContent/WEB-INF/lib/shiro-web-1.2.3.jar
 create mode 100644 WebContent/WEB-INF/lib/slf4j-api-1.7.12.jar
 create mode 100644 WebContent/WEB-INF/shiro.ini
 create mode 100644 WebContent/WEB-INF/web.xml
 create mode 100644 WebContent/error.jsp
 create mode 100644 WebContent/success.jsp
 create mode 100644 build/classes/com/java/dao/UserDao.class
 create mode 100644 build/classes/com/java/entity/User.class
 create mode 100644 build/classes/com/java/realm/ShiroRealm.class
 create mode 100644 build/classes/com/java/util/DbUtil.class
 create mode 100644 src/com/java/dao/UserDao.java
 create mode 100644 src/com/java/entity/User.java
 create mode 100644 src/com/java/realm/ShiroRealm.java
 create mode 100644 src/com/java/util/DbUtil.java

我们在执行   git commit -m "Started project"    的时候以拍摄项目的快照。标志-m 让Git接下里的消息(“Started project")记录到项目中的历史记录中,输出表明我们在分支master 上,而且有一个文件被修改了。

简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

7.查看提交历史

$ git log
commit 81e08898c1cd905e21d11e11a8de9d7a8ebe5f43 (HEAD -> master)
Author: xudsong <[email protected]>
Date:   Fri May 4 09:52:18 2018 +0800

    started project

我们每次提交的时候,Git都会生成一个包含40字符的独一无二的引用ID,它记录提交是谁执行的,提交的时间以及提交的指定消息,并非在任何情况下你都需要所有的这些信息,因此Git提供一个选项,让我们能够打印提交历史条目的更简单的版本。

$ git log --pretty=oneline
5d6cecad80427924b94b14c6fd2bb82a4fa86840 (HEAD -> master) Started project

标志 --pretty=oneline   指定显示一项最重要的信息,提交的引用ID以及为提交记录的消息。

就这样整个项目就提交到GitHub上了。

参考文档:

问题:github中non-fast-forward错误的解决http://www.cnblogs.com/xwdreamer/archive/2012/05/29/2523958.html

问题:fatal: HttpRequestException encountered解决方法:https://blog.csdn.net/txy864/article/details/79557729

git进行版本控制心得详谈:http://www.jb51.net/article/130183.htm

猜你喜欢

转载自blog.csdn.net/xudasong123/article/details/80184618