由于公司一直使用的是的SVN,基本上都是内网,原来的git命令都快忘记了,当然也是自己太懒,平时都是直接拖到github上。今天打开idea后突然看到了原来自己写好的一个项目,就想将它上传到github上,也顺便再复习一下git命令,没想到也是遇到了很多坑,也是参考了几个大神的博客才解决,因此想记录一下。

因为项目是之前写好的,一直放在idea的工作空间里,git是之前已经下好的,包括github上仓库已经建好,万事俱备。

1.首先是打命令行窗口 ,cd到项目的目录中

yht:~ YHT$ cd /Users/ae/IdeaProjects/CloudDisk
yht:CloudDisk YHT$ ls
HELP.md mvnw.cmd src
mvnw pom.xml target

2.然后在初始化仓库

yht:CloudDisk YHT$ git init
Initialized empty Git repository in /Users/ae/IdeaProjects/CloudDisk/.git/

3.设置用户名和邮箱

刚开始时就直接add然后commit -m,就会提示让你先输入邮箱和用户名。 下面都有提示该怎么敲命令,还是非常友好的,有时候命令敲错了,漏掉一两个单词也会给出提示。

#如果没有设置邮箱和名字直接commit会提示你设置
yht:CloudDisk YHT$ git commit -m "project first commit" *** Please tell me who you are. Run git config --global user.email "you@example.com"
git config --global user.name "Your Name" to set your account's default identity.
Omit --global to set the identity only in this repository. fatal: unable to auto-detect email address (got 'YHT@yht.(none)')

忘记了是否设置过,可以用命令查看一下,如果设置过了会显示出来。

yht:.ssh YHT$ git config --global --list
user.email=你的邮箱
user.name=你的名字
#没有的话设置一下
yht:.ssh YHT$ git config --global user.email "你的邮箱"
yht:.ssh YHT$ git config --global user.name "你的名字" 

4.测试SSH连接

记得原来生成过一次秘钥,但是上github上的setting中的SSH keys看了一下,发现只有一个SSH Key,好像绑定的是另一个电脑,因此就重新生成一个吧。

cd /Users/ae/.ssh
yht:.ssh YHT$ ssh-keygen -t rsa -C "你的邮箱" #回车 #回车 #回车 Your identification has been saved in /Users/ae/.ssh/id_rsa.
Your public key has been saved in /Users/ae/.ssh/id_rsa.pub.

输完命令回车就行 会在.ssh文件下生成一个 id_rsa 和一个 id_rsa.pub文件

通过cat id_rsa.pub或vi id_rsa.pub 查看该文件,然后复制到 github中的setting-->SSH and GPG keys-->New SSH key,取个你喜欢的名字然后将秘钥复制到里面。

然后测试SSH连接

yht:.ssh YHT$ ssh -T git@github.com 
Hi aoteman! You've successfully authenticated, but GitHub does not provide shell access.

当时也是没有生成SSH Keys直接commit  然后就一直报错

git@github.com: Permission denied (publickey).

5.提交代码到远程仓库

先设置一下远程仓库的地址,因为我们使用的是SSH连接,在github中点开仓库,然后Clone or download,右上角选择SSH连接,复制一下远程仓库地址。

#设置远程仓库地址
yht:CloudDisk $YHT git remote add origin "你的远程仓库地址"
#查看远程仓库地址
yht:CloudDisk YHT$ git remote -v
origin git@github.com:aoteman/CloudDisk.git (fetch)
origin git@github.com:aoteman/CloudDisk.git (push)
...
yht:CloudDisk YHT$ git push -u origin master 

到此本以为大功告成了,只剩下add、commit、push即可,然而再push的时候再次出现问题。。。

hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

翻译过来的意思大概就是远程仓库包含你还没有的文件,你可以在push之前先pull一下,想了一下确实远程仓库中初始化的有README.md文件,不是一个空的仓库,因此使用git pull先拉取到本地。

拉取完成后总可以提交了吧,然而还是报错

fatal: refusing to merge unrelated histories 
(拒绝合并不相关的历史)

百度了一下说是因为本地仓库并不是从远程仓库中git clone下来的,实质上是两个独立的仓库,确实是这样,我是先在github上创建了一个仓库,又在本地的项目中去git init了,然后找到了一条命令:

git pull origin master --allow-unrelated-histories(该选项可以合并两个独立启动仓库的历史)

最后 将本地仓库中的文件推送到远程仓库即可。

git push -u origin master

6.总结:知识学过了如果不经常使用总是容易忘,平时的工作学习都是阶段性的,很容易忽略一些学过的重要的知识,因此平时要多总结,养成一个好习惯,加油!

记录--git命令行上传项目到github仓库的更多相关文章

  1. 如何使用git命令行上传项目到github

    第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹). 你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创建. 现在我通过命令行在桌面新建一个TEST文件夹(你也 ...

  2. 如何用git命令行上传本地代码到github

    注意:安装的前提条件是配置好Git的相关环境或者安装好git.exe,此处不再重点提及 上传的步骤: 本文采用git 命令界面进行操作,先执行以下两个命令,配置用户名和email[设置用戶名和e-ma ...

  3. 用命令行上传本地代码到GitHub

    有两种方式上传,ssh和https,ssh老是报错=.=我用的是https 先下载git   https://git-scm.com/downloads 在代码的文件夹的同级目录中邮件打开git ba ...

  4. 手把手教你用git和SourceTree上传项目到github细解(转)

    尊重原创:https://blog.csdn.net/qq_32365567/article/details/52859166 一.引言 我想大家现在都很熟悉github了,也能运用github上开源 ...

  5. 使用Git GUI,上传项目到github,并实现预览功能

    一.使用GUI,上传项目到GitHub (GUI是啥,不做过多赘述,可百度了解) 步骤: 1.打开GUI,新建一个仓库,demo 2.在编辑器中,编写相关代码,比如添加1.html文件,文件内容为“h ...

  6. 【重要】使用Git命令行上传到GitHub上

    [本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...

  7. git入门及上传项目到github

    Git入门:       如果你完全没有接触过Git,你现在只需要理解通过Git的语法(敲入一些命令)就可以将代码上传到远程的仓库或者下载到本地的仓库(服务器),我们此时应该有两个仓库,就是两个放代码 ...

  8. 通过命令行上传代码到GitHub

    自工作以来,本人第一次使用GitHub.下面是将本地的项目上传到GitHub的过程.上传代码的前提是:1.已注册GitHub账号:2.本地已安装Git. 第一步:远程Git仓库 进入本地的项目的根目录 ...

  9. Git入门及上传项目到github中

    最近需要将课设代码上传到Github上,之前只是用来fork别人的代码. 这篇文章写得是windows下的使用方法. 第一步:创建Github新账户 第二步:新建仓库 第三部:填写名称,简介(可选), ...

随机推荐

  1. 第3章 ES文档和故障处理

    第3章 ES文档和故障处理 一.ES网络配置表 ES网络配置表是ES的硬件和软件组成的列表.ES网络配置常包括以下项目: 分级 项目 杂项信息 系统名.系统厂商/型号.CPU速率.RAM.存储器.系统 ...

  2. iconfont 不居中的问题

    引用 阿里的 iconfont 发现跟我的文字不居中 页面中实际展示的时候,发现 iconfont 字体飘起来了 原因是:iconfont 的基线跟 文字 的基线不同导致的. 解决办法:给 iconf ...

  3. 解决myeclipse中struts2 bug问题包的替换问题

    由于struts2的bug问题,手工替换还是比較麻烦.但即便是最新的myeclipse2014也没有替换最新的struts2包,研究了一天,最终找到了解决的方法.下面就解决方法与大家分享一下. 1.在 ...

  4. UITextView获取光标位置

    UITextRange *range = textView.selectedTextRange; //光标位置 CGRect  rect = [textView caretRectForPositio ...

  5. Fiddler抓取https请求,解决“证书错误”警告

    要抓取走HTTPS内容,Fiddler必须解密HTTPS流量. 但是,浏览器将会检查数字证书,并发现会话遭到窃听.为了骗过浏览 器,Fiddler通过使用另一个数字证书重新加密HTTPS流量. Fid ...

  6. git 命令 —— checkout

    git checkout 会重写工作区.check in 常常表示酒店入住,则 check out 就表示结账(检查)离开. 1. 基本用法 Git学习笔记04–git checkout git ch ...

  7. Redis学习和应用记录(1)--介绍和安装

    Redis是一个开源的分布式缓存框架,它也常被理解为数据结构服务器,因为它包含丰富的数据类型,如strings, hashes, lists, sets, sorted sets, bitmaps a ...

  8. bzoj1992鬼谷子的钱袋(二分乱搞 二进制)

    1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3223  Solved: 2333 Descriptio ...

  9. akka设计模式系列-慎用ask

    慎用ask应该是Akka设计的一个准则,很多时候我们应该禁用ask.之所以单独把ask拎出来作为一篇博文,主要是akka的初学者往往对ask的使用比较疑惑. "Using ask will ...

  10. 基于Spark Streaming预测股票走势的例子(二)

    上一篇博客中,已经对股票预测的例子做了简单的讲解,下面对其中的几个关键的技术点再作一些总结. 1.updateStateByKey 由于在1.6版本中有一个替代函数,据说效率比较高,所以作者就顺便研究 ...