热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mac环境通过git上传代码至github

最近打算把自己用sublimetext2写的一些小项目通过git传到github上,但是,发现网上介绍的,大部分都是windows环境下的。这篇主要是介绍在mac环境下如何配置git和g

最近打算把自己用sublime text2写的一些小项目通过git传到github上,但是,发现网上介绍的,大部分都是windows环境下的。这篇主要是介绍在mac环境下如何配置git 和github的集成。


一、安装git

    1.下载git客户端程序,地址为:https://git-scm.com/download/mac。即可以下载到最新的客户端程序,我安装的是git2.8.1,目前最新版本。

   2.打开安装包,可以看到此时的界面为:


我们需要把.pkg的安装包安装到系统当中。我双击了安装包之后,结果无法安装成功。界面为:



这里是一个坑,虽然是很简单的问题的,网上很多解决方式,由于这个需要权限,所以直接点击安装是无法成功的。方式是右击该软件,点击打开,会弹出安装程序的界面如下:


所示。然后选择打开,就可以完成安装了。

安装完成界面如下图所示:


通过命令行可以查看git 版本,git --version,如下图所示:


二、创建SSH 连接github

打开终端,输入$cd ~/.ssh,进入该目录下,然后创建ssh秘钥,用作github验证。命令为

$ssh-keygen -t rsa -C xxxxx@163.com,我用的是163邮箱注册的(github注册邮箱)。
将生成的id_rsa.pub文件打开,拷贝其中的公钥内容,在github上进行粘贴。即可创建和github的ssh链接。

这里的Overwrite是因为之前我生成过ssh,所以,会提示是否覆盖

注意:

程序会提示您输入密钥的文件名,比如输入github,不输入默认为id,按回车即可。

会要求你输入一个密码,将来在使用密钥的时候需要提供这个密码。可以输入,也可以不输入直接回车(无论输入还是不输入,都会要求你确认一次)。

确认完毕后,程序将生成一对密钥存放在以下文件夹:

/users/用户/.ssh/

密钥分成两个文件,一个私钥(id_rsa)、一个公钥(id_rsa.pub)。
私钥保存在您的电脑上,公钥交项目负责人添加到服务器上。用户必须拥有与服务器公钥所配对的私钥,才能访问服务器上的代码库。

【注意!】为了项目代码的安全,请妥善保管你的私钥!因为一旦私钥外泄,将可能导致服务器上的代码被泄漏!

接着,将生成的id_rsa.pub文件打开,拷贝其中的公钥内容,再github上进行粘贴。即可创建和github的ssh链接。
mac 下使用如下命令,将公钥的内容复制到内存里。
pbcopy <~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboard
然后,打开github,点击【Settings】,选择 【SSH and GPG Keys】,点击【NEW SSH KEY】,将黏贴的内容复制到key,title可以根据自己情况填写。
如下图所示:
点击【Add SSH KEY】,完成添加SSH功能。 最后,可以进行测试,输入ssh -T git@github.com,如果连接成功,会提示如下信息:
接下来就可以上传你的代码了,在github下建自己的Repository。Create a New Repository如下: 
  • Repository name:创建的工程名。
  • Description:对工程的描述。
  • 选择Public。
  • 点击 “Create repository”,如下图所示,表示创建成功。
三、通过git上传代码到github
目前,在GitHub上的这个shortrent仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
我在本地已经简单地搭建了一个shortrent前端项目,现在想把这个项目通过git上传到github上。首先跳转到项目目录,然后执行git init,瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。
注意:也不一定必须在空目录下创建Git仓库,选择一个已经有东西的目录也是可以的。我这个目录有项目存在。 
 
  

和把大象放到冰箱需要3步相比,我们接着介绍如何一步步把多个文件同时提交到远程库。

第一步,用命令git add告诉Git(可以使用git add file git add /* 或者 git add *),把文件添加到仓库,

使用命令git add ,注意,可反复多次使用,添加多个文件,执行git add *,没有任何提示,如下图所示,执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。

第二步,用命令git commit告诉Git,把文件提交到仓库,如下图所示,表示commit成功。

第三步,添加远程库,目前,在GitHub上的这个shortrent仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

现在,我们根据GitHub的提示,在本地的shortrent仓库下运行命令:

命令格式: git remote add orgin SSH Key

远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。而SSH Key可以直接去github shortrent repository 页面点击【Clone or download】去复制SSH Key

$ git remote add origin git@github.com:believejava/shortrent.git

执行上述命令,结果同git add *没有任何提示,表示添加远程库成功。

第四步,把本地库的所有内容推送到远程库上,执行

$ git push -u origin master
把本地库的内容推送到远程,用 git push命令,实际上是把当前分支 master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样,但是,我这里执行命令后,提示如下:


原因已经讲的很清楚,远程库里存在我本地库没有的文件,这里是因为我在创建远程库的时候,添加了一个README.md,所以,我们首先执行

$ git pull origin master

简单讲,git pull = git fetch + merge to local

注意:从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

会提示输入注释,如下图所示:


可以不输入,退出后,提示如下所示界面:


表示我们本地库已经将远程库里的文件README.md下载下来了。此时,可以看到本地文件shortrent多了这个文件README.md

然后接着执行git push -u origin master,执行结果如下:


现在,我们查看github远程库,可以看到代码已经上传成功,如下图所示:


注意:

要关联一个远程库,使用命令git remote add origin git@github.com:username/repo-name.git

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改。

 
  
 
 



参考文献:

http://blog.csdn.net/helinlin007/article/details/50358633

http://www.cnblogs.com/owenChen/archive/2012/12/28/2837450.html

http://www.jianshu.com/p/31cbbbc5f9fa/

http://www.cnblogs.com/heyonggang/p/3462191.html

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d599b3aed534aaab22a0db6c4e07fd0000


推荐阅读
  • `chkconfig` 命令主要用于管理和查询系统服务在不同运行级别中的启动状态。该命令不仅能够更新服务的启动配置,还能检查特定服务的当前状态。通过 `chkconfig`,管理员可以轻松地控制服务在系统启动时的行为,确保关键服务正常运行,同时禁用不必要的服务以提高系统性能和安全性。本文将详细介绍 `chkconfig` 的各项参数及其使用方法,帮助读者更好地理解和应用这一强大的系统管理工具。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • 在 Ubuntu 系统中安装 Python pip 时遇到错误的解决方案 ... [详细]
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • Git基础操作指南:掌握必备技能
    掌握 Git 基础操作是每个开发者必备的技能。本文详细介绍了 Git 的基本命令和使用方法,包括初始化仓库、配置用户信息、添加文件、提交更改以及查看版本历史等关键步骤。通过这些操作,读者可以快速上手并高效管理代码版本。例如,使用 `git config --global user.name` 和 `git config --global user.email` 来设置全局用户名和邮箱,确保每次提交时都能正确标识提交者信息。 ... [详细]
  • SQL Server开发技巧:修改表结构后的视图批量更新方法与实践 ... [详细]
  • 在Hive中合理配置Map和Reduce任务的数量对于优化不同场景下的性能至关重要。本文探讨了如何控制Hive任务中的Map数量,分析了当输入数据超过128MB时是否会自动拆分,以及Map数量是否越多越好的问题。通过实际案例和实验数据,本文提供了具体的配置建议,帮助用户在不同场景下实现最佳性能。 ... [详细]
  • Python网络爬虫入门:利用urllib库进行数据抓取
    Python网络爬虫入门:利用urllib库进行数据抓取在数据科学和Web开发领域,Python凭借其简洁高效的特性成为首选语言。本文主要介绍了如何在Windows环境下使用Python的urllib库进行基本的网络数据抓取。考虑到命令行操作的不便,作者选择了Jupyter Notebook作为开发环境,不仅简化了配置过程,还提供了直观的数据处理和可视化功能。通过实例演示,读者可以轻松掌握urllib的基本用法,为深入学习网络爬虫技术打下坚实基础。 ... [详细]
  • 本文深入探讨了Spring Cloud Eureka在企业级应用中的高级使用场景及优化策略。首先,介绍了Eureka的安全配置,确保服务注册与发现过程的安全性。接着,分析了Eureka的健康检查机制,提高系统的稳定性和可靠性。随后,详细讨论了Eureka的各项参数调优技巧,以提升性能和响应速度。最后,阐述了如何实现Eureka的高可用性部署,保障服务的连续性和可用性。通过这些内容,开发者可以更好地理解和运用Eureka,提升微服务架构的整体效能。 ... [详细]
  • PHP连接MySQL的三种方法及预处理语句防止SQL注入的技术详解
    PHP连接MySQL的三种方法及预处理语句防止SQL注入的技术详解 ... [详细]
author-avatar
思紅顏0114
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有