github因为众所周知的一些问题,不方便选为远程仓库,在此,我们选用oschina的远程仓库,首先去http://git.oschina.net/申请一个账号。

  第一步,安装git(下载电脑系统对应的版本)。下载好之后双击安装,安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!如下图所示:

  然后输入两行代码,红色字体部分用你的名字和邮箱代替。

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

  第二步:建立本地仓库。

  找一个你想做仓库的地方,新建一个文件夹,当然,现在有git bash了,我们可以用命令来建了。

  首先pwd看一下当前路径,如下(每个人的可能不一样):

  发现现在在C盘下,然而我不想把仓库放在C盘,那么我们就换一换喽。现在要熟练使用cd的三个功能,回到根目录,回到上级目录和进入子目录。进到自己想去的目录之后,开始建仓库。

$ mkdir learngit
$ cd learngit
$ git init

  三行代码就建好了仓库,仓库叫做learngit。

  现在这个仓库是空的,毕竟learngit文件夹下面除了隐藏文件就什么也没有了(进去learngit,ls后什么都没有,la -a后可以看到2个隐藏文件夹)。现在我们随便放点东西进去,比如:test.txt。

$vi test.txt

  上面的一行代码就创建了test.txt文件。(输入代码$vi test.txt之后,会进入编辑界面,随便输入文字,我输的”it is a test“,输完后按Esc推出编辑模式,然后输入:wq就是保存后退出;还有:q是退出,加感叹号是表示强制)

  建立好之后cat一下,看,内容已经呈现。

  到现在为止,我们已经建好本地仓库,叫做learngit,并且仓库里面有一个test.txt的文件,这个地方其实还有一个名字,叫做工作区,我们都在这里操作,接下来讲如何把工作区的文件添加到版本库。

  第三步:把文件添加到版本库。下面的2行代码搞定。

$ git add test.txt
$ git commit -m "add test.txt"

  建议commit后面一定要跟-m参数,后面说明这次提交做了什么。

  现在我们整理一下思路,看看文件都走了哪些路:首先test.txt在工作区,它的出生地在那里,然后我们add了一下,它就复制了一份去版本库(learngit下一个叫.git的隐藏目录)里称为stage(或者叫index)的暂存区,然后我们commit了一下,就把暂存区的所有内容提交到当前分支(是所有文件,也就是说,我们可以多次add之后再一次commit),下面是一张形象的图:

  到现在,所有的文件还都在我们本地电脑上,别人还都看不见,所以接下来要想办法能让别人也能看见。

  第四步:关联远程仓库并提交代码。

  去oschina里创建一个项目,创建好之后,我们看到里面只有一个README.md文件。

  右上角显示仓库的两种地址,一个是https,一个是ssh。

  由于我们是先建立的本地仓库,于是我们要把已有的本地仓库与之关联,然后,把本地仓库的内容推送到oschina仓库。

  在本地仓库learngit下运行命令:

$ git remote add origin xxx

  xxx用你要关联的https或ssh路径代替。现在已经把本地仓库和远程仓库关联了,下一步就把本地库的所有内容推送到远程库上:

$ git push -u origin master

  第一次提交-u参数必需,以后可以省略。

  刷新oschina页面,可以看到远程库的内容已经和本地一模一样。

  当然,另外一种方式是先有的oschina仓库,我们就需要clone下这个仓库到本地,clone代码如下:

$git clone xxx

  xxx用你要clone的https或ssh路径代替。

  至此,我们的本地仓库和远程仓库实现同步,并且,我们能够在本地仓库的工作区工作,然后把工作成果同步到远程仓库,小伙伴们都可以看到了。

  还有一点说漏了,为我们的仓库加一把钥匙,创建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

  把邮件地址换成你自己的邮件地址,然后一路回车,然后输入下面一行代码:

cat ~/.ssh/id_rsa.pub

  回车后可以看到ssh -rsa后面跟着一大串字符,这个就是公钥,可以放心地告诉任何人。然后进oschina页面,找到公钥管理页面:

  按步骤添加新的公钥即可。完了之后输入下面的代码验证是否添加成功:

ssh -T git@git.oschina.net

  返回代码如下则成功:

Welcome to Git@OSC, yourname! 

参考资料链接:

廖雪峰的git教程

开源中国帮助文档

git使用(一)的更多相关文章

  1. Git 子模块 - submodule

    有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...

  2. Git 在团队中的最佳实践--如何正确使用Git Flow

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...

  3. Git与Repo入门

    版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...

  4. Git Bash的一些命令和配置

    查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...

  5. 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net

    1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...

  6. 史上最详细git教程

    题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...

  7. [版本控制之道] Git 常用的命令总结(欢迎收藏备用)

    坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...

  8. 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解

    工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...

  9. git 命令

    切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm  ...

  10. git亲测命令

    一.Git新建本地分支与远程分支关联问题 git checkout -b branch_name origin/branch_name 或者 git branch --set-upstream bra ...

随机推荐

  1. CentOS 6.4下编译安装MySQL 5.6.14

    概述: CentOS 6.4下通过yum安装的MySQL是5.1版的,比较老,所以就想通过源代码安装高版本的5.6.14. 正文: 一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server ...

  2. 手动处理datanode磁盘间使用不均的问题

    http://wiki.apache.org/hadoop/FAQ#On_an_individual_data_node.2C_how_do_you_balance_the_blocks_on_the ...

  3. PHP下使用强大的imagick轻松生成组合缩略图

    project: blog target: use-imagick-to-composite-images-thumbnail.md date: 2016-02-19 status: publish ...

  4. php substr中文乱码最有效到解决办法 转:http://blog.sina.com.cn/s/blog_49b531af0100esah.html

    (2009-07-29 12:29:38) 转载▼ 标签: php substr文乱码 网站开发 it   直接使用PHP函数substr截取中文字符可能会出现乱码,主要是substr可能硬生生的将一 ...

  5. myisam 与innodb的区别

    myisam 与innodb的区别 frm结构 fri索引 frd数据 innodb:一个表一个文件:frm文件 所有的innodb表,都使用表空间储存, 数据和索引的保存文件不同,myisam 分开 ...

  6. Nginx具体的压缩配置

    以下是自学it网--中级班上课笔记 网址:www.zixue.it 常用以下配置 gzip on|off gzip_buffers 4K|8K 缓冲(和硬盘块相当) gzip_comp_level [ ...

  7. QTreeWidget实现动态加载本地文件系统

    QT之前没有接触过,之所以做这个也是被临时拉去GoldenFarm组去做渲染的客户端:还别说,虽说是第一次,做出来的这个东西倒是挺让我满意的.先说一下具体需求,然后再上图吧: 渲染时在选择场景文件时, ...

  8. information_schema.routines 学习

    information_schema.routines 用户查看mysql中的routine信息 1.information_schema.routines 表中的常用列: 1.

  9. Android---60---Notification 通知栏的简单使用

    Notification是显示在手机状态栏的通知 通过Notification.Builder类创建Notification对象. Notification.Builder经常用法: setDefau ...

  10. 【Spring】基于注解的实现SpringMVC+MySQL

    目录结构: // contents structure [-] SprinigMVC是什么 SpringMVC工作原理 @Controller和@RequestMapping注解 @Controlle ...