对于我来说,最开始使用github主要是为了使用它的pages功能展示demo。其实这些都是用Github for Windows push上去的,图形化界面的客户端使用确实简单,但是逼格不够,好吧其实是各种原因下不了客户端,正好给我一个探索terminal方式的机会。

1、github账号注册 & msysgit的安装


言归正传,简单介绍下怎样利用git bash操作远端的github代码。首先得有git和github的基本概念,git是版本控制工具,而github相当于一个“免费”的服务器了(一般公司会搭建自己的git服务器)。然后可以注册个github的账号,很简单,分分钟注册完。之后,得在本地安装msysgit,安装完后,你会发现多了git bash和git gui,顾名思义一个是terminal方式一个是图形用户界面的方式。

2、设置用户信息


git要求使用者必须提供自己的身份标识,为此我们需要在git bash中执行以下命令(当然不设置也行,每次提交都是unknown...):

$ git config --global user.name "hanzichi" //给自己起个用户名
$ git config --global user.email  "abc@gmail.com" //填写自己的邮箱

3、获取密钥


GitHub选择的默认通信方式是SSH(对SSH感兴趣的可以参考阮老师的文章SSH原理与运用(一):远程登录 SSH原理与运用(二):远程操作与端口转发),如果没有配置SSH key就只能clone代码不能push上去(只读),所以要先在Git里面生成SHH Key。如果在当前用户的第一级文件夹下有.ssh文件夹,说明以前可能使用过git,把该文件夹删除(或者先备份再删除,防止意外)。

获得密钥:

ssh-keygen -t rsa -C "abc@gmail.com" //填写email地址,然后一直“回车”ok

打开本地..\.ssh\id_rsa.pub文件。此文件里面内容为刚才生成的密钥。然后把该密钥复制到github的setting/ssh中,点击打开页面的add SSH key按钮,title任意,把key值复制进去。

经过上述配置,你的Git应该可以通过SSH连接GitHub服务器了,可以测试一把(配置完SSH key后,就表示本地能操作该用户下的库,能提交代码了):

ssh -T git@github.com

提示像我这样:Hi hanzichi! You've successfully authenticated, but GitHub does not provide shell access. 那就说明连接成功了。

4、远程操作


确认本地和github的服务器可以通信后,就可以拉代码、push代码了。

可以使用现有的项目或者fork的项目,这里为了测试,我新建了个helloworld项目,然后打开git bash,进入自己要克隆文件的目录,用git clone命令把该项目克隆到本地。

git clone git@github.com:hanzichi/helloworld.git

推荐用SSH的地址,而不是HTTPS,这样就不用每次输用户名密码了。

克隆完后,打开helloworld文件夹,里面有个隐藏的.git文件夹,还有个README的md文件,这是在创建项目的时候设置添加的。接着就可以往里面添加文件了。比如我在helloworld文件夹下写了一个index.html文件和一个index.js文件,我要把它们添加到远程项目库中。

git add . // 要add的文件,. 表示添加所有
git commit -m 'add files' // 提交更新
git push origin master  // push到远端master上

这样操作后文件就提交到远端去了! 注意只有最后一步和github有关!

notice


这里再提点别的,还是像以上操作在github创建了一个helloworld项目,可以不先克隆,而在本地创建一个helloworld文件夹,右击文件夹用git init命令初始化git环境,然后添加文件,push时在commit后多执行一步:

git remote add origin git@github.com:hanzichi/helloworld.git

如果出现错误,提示:fatal: remote origin already exists 则可直接push

如果在执行 git push origin master 时报错:error:failed to push som refs to.......

则可先执行:

 git pull origin master

先把远程服务器github上面的文件拉先来,再push 上去。

参考

  1. 关于初学者上传文件到github的方法
  2. git/github学习笔记
  3. github简单使用教程
  4. 公钥认证管理

初学git:用git bash往github push代码的更多相关文章

  1. Git从码云或者Github 克隆代码到本地

    Git从码云或者Github 克隆代码到本地 1.下载安装Git,傻瓜式下一步下一步即可... 2.配置Git: 2.1.选择你要clone到本地的路径:右键--->$ Git Bash Her ...

  2. git使用教程2-更新github上代码

    前面一篇已经实现首次上传代码到github了,迈出了装逼第一步,本篇继续讲如何把本地更新的代码同步更新到github上 一.clone代码 1.把大神的代码clone到本地,或者clone自己gith ...

  3. git使用教程2-更新github上代码【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/git/ 前言 前面一篇已经实现首次上传代码到github了,迈出了装逼第一步,本篇继续 ...

  4. [Git] 还原Git上commit,但是没有push代码

    直接在Idea上操作2步解决: 1. 找到: 2. 在To Commit里面填写:HEAD^,表示将commit的信息还原为上一次的,需要多次直接reset多次即可: 使用命令行:原理一样 以下内容转 ...

  5. 在eclipse中使用git clone 别人共享在Github的代码和上传到自己的仓库!

    原文地址:http://www.itdaan.com/blog/2014/10/24/ff5e03b5cefef19e1b6fbb7b49809846.html1.在eclipse中安装git:打开e ...

  6. Windows下解决github push failed (remote: Permission to userA/XXXX.git denied to userB.) 上传gitHub失败报错

    Windows环境下解决 github push failed (remote: Permission to userA/XXXX.git denied to userB.) · 初学GitHub的朋 ...

  7. 详细介绍如何在win7下首次实现通过Git bash向Github提交项目

    详细介绍如何在win7下首次实现通过Git bash向Github提交项目 引自:http://jingpin.jikexueyuan.com/article/35944.html 作者: wddoe ...

  8. Git之Github使用(一):Push代码到Github

    Git之Github使用(一):Push代码到Github 热度 2已有 58 次阅读2016-8-26 17:56 |个人分类:常见问题|系统分类:移动开发| 互联网, commit, status ...

  9. 使用git bash向github远程仓库提交代码

    1.登录github,创建仓库. 2.切换到要提交的文件目录下. 3.打开git bash 3.1.初始化仓库 git init 3.2.将本地仓库与远程仓库关联 git remote add ori ...

随机推荐

  1. Puppet权威指南

    <Puppet权威指南>基本信息作者: 王冬生 丛书名: Linux/Unix技术丛书出版社:机械工业出版社ISBN:9787111485988上架时间:2014-12-25出版日期:20 ...

  2. 按要求编写Java应用程序。 (1)创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。 编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速 度设置为100,载重量设置为100;另一个能为对象的所有属性赋值; (2)创建主类: 在主类中创建两个机动车对象。 创建第

    package com.hanqi.test; public class jidongche { private String chepaihao;//车牌号 private int speed;// ...

  3. TCP/UDP常见端口参考

    著名端口 端口号码 / 层 名称 注释 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat ...

  4. 移动端rem单位用法[转]

    标签: 1.rem(font size of the root element)是指相对于根元素的字体大小的单位,em(font size of the element)是指相对于父元素的字体大小的单 ...

  5. 修改TFS客户端的工作区类型

    TFS系统存在两种工作区类型:"​本地"和"服务器".默认情况下,用户使用本地工作区实现代码管理. 但是在用户端代码文件特别多(超过10万个文件)时,由于每次启 ...

  6. [转]How to open specific page in the application by clicking on the notification

    本文转自:https://github.com/phonegap-build/PushPlugin/issues/213 问:Hello, I would like to know how can I ...

  7. ZBrush中文版ZBrushCore震撼来袭

    北京时间2016年9月30日,Pixologic公司召开新闻发布会,宣布ZBrush精简版ZBrushCore正式发布.该版本不仅支持中文,还支持多国语言,包括法语.西班牙语等.简单点来说,ZBrus ...

  8. java函数参数默认值

    java函数参数默认值 今天,需要设定java函数参数的默认值,发现按照其它语言中的方法行不通 java中似乎只能通过函数的重载来实现 函数参数默认代码

  9. 这几天在搞UNITY3D,感觉回到了AS2

    这几天在搞UNITY3D,感觉回到了AS2 代码没有MAIN, 代码在屏幕上,和元件绑定

  10. JSP前三章错题整理

    A: B: C: D:  web-inf目录中的文件不能被客户端直接访问. 正确答案是 C 您回答的是 D 回答错误 试题分析纠错设为收藏 (选择一项) 14 A: B: C: Tomcat作为Web ...