由于公司一直使用的是的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. vim 安装插件的网站

    我在想, 怎么让vim可以 显示目录结构呢?一个目录里面的文件? vim插件的网站:http://www.vim.org/scripts/script.php?script_id=1658 原文:ht ...

  2. MVC之查询demo

    上篇已经说过怎样建立MVC项目.这次主要讲述样例的实现. 其基本的功能就是从数据库中查询一些基本信息. 前边我们已经将实体引入到了项目中,这时Model目录中已经出现了我们建立的newsSystem. ...

  3. python编程(基于twisted的client编程)

    [ 声明:版权全部,欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] python的twisted比較有意思,既能够做server方面的编程,也能够做client方面 ...

  4. [LeetCode][Java] 4Sum

    题目: Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = ...

  5. android note【转】

    本文转载自:http://blog.csdn.net/u012719256/article/details/52094982 1.重要的property属性 #define ANDROID_RB_PR ...

  6. 【POJ 2503】 Babelfish

    [题目链接] http://poj.org/problem?id=2503 [算法] 字符串哈希 [代码] #include <algorithm> #include <bitset ...

  7. B1068 [SCOI2007]压缩 区间dp

    这个题我状态想对了,但是转移错了...dp的代码难度都不大,但是思考含量太高了..不会啊,我太菜了. 其实这个题就是一个正常的区间dp,中间多了一个特判的转移就行了. 题干: Description ...

  8. Android.mk添加第三方jar包(转载)

    转自:www.cnblogs.com/hopetribe/archive/2012/04/23/2467060.html LOCAL_PATH:= $(call my-dir)include $(CL ...

  9. JavaScript中相等==和严格相等===的区别

    在JavaScipt中==(相等)和===(严格相等,strick equality 也有译作“恒等”.“全等”)用于比较两个值是否相等,两个运算符允许任意类型的操作数.如果操作数相等则返回true, ...

  10. Java注解Annotation的用法 - 自定义Annotation实现

    Java注解又称Java标注,是Java语言5.0版本开始支持加入源代码的特殊语法元数据. Java语言中的类.方法.变量.参数和包等都可以被标注.和Javadoc不同,Java标注可以通过反射获取标 ...