0%
这是一片思考的空间 -- arthinking
Spring 重构&代码整洁之道 软件设计 JVM 并发编程 数据结构与算法 分布式 存储 网络 微服务 设计模式
Java技术栈 - 涉及Java技术体系

Git分布式文件管理工具与使用GitHub托管项目

最近使用到了github托管项目,所以了解下Git。

Git是一个分布式的版本控制系统,GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单︰首先点击项目站点的“fork”的按 钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。

1、下载Git客户端:

http://code.google.com/p/msysgit/downloads/list

  • 2、使用Git客户端设置Git:

可以参考:https://help.github.com/articles/set-up-git

设置用户名:

1
2
$ git config --global user.name "Your Name Here"
\# Sets the default name for git to use when you commit

设置Email,可以不用真实的Email,只是作为一个标示:

1
2
$ git config --global user.email "your_email@youremail.com"
\# Sets the default email for git to use when you commit

设置密码缓存时间:

1
2
3
4
$ git config --global credential.helper cache
\# Set git to use the credential memory cache
$ git config --global credential.helper 'cache --timeout=3600''
\# Set the cache to timeout after 1 hour (setting is in seconds)

3、在服务器上创建一个仓库:

可以参考:https://help.github.com/articles/create-a-repo

4、初始化本地仓库:

1
2
3
4
5
6
7
$ mkdir ~/Hello-World
\# Creates a directory for your project called "Hello-World" in your user directory
$ cd ~/Hello-World
\# Changes the current working directory to your newly created directory
$ git init
\# Sets up the necessary Git files
\# Initialized empty Git repository in /Users/you/Hello-World/.git/

5、添加文件:

1
2
$ touch README
\# Creates a file called "README" in your Hello-World directory

6、提交文件到本地仓库:

1
2
3
4
$ git add README
\# Stages your README file, adding it to the list of files to be committed
$ git commit -m 'first commit''
\# Commits your files, adding the message "first commit"

7、生成SSH Key:

使用GitHub首先要创建SSH Key。SSH将用来加密本机与远端服务器之间的通信。同时也是识别你对代码所做的变更的方法。SSH Key可以使用Git命令行来产生。首先打开Git Bash命令行,输入:

1
ssh-keygen -C "username@email.com" -t rsa

说明:username@email.com 为你初始化Git的设置的Email地址。

之后Git Bash命令行中,会进行一些提示:

保存位置:注意rsa key pair要生成到root directory: ~/.ssh/目录下,如生成到C:\Users\arthinking\.ssh\id_rsa.pub。 pass phrase:如果本机安全,也可以不用输入。

找到生成的id_rsa.pub文件,把里面的内容复制到GitHub -> Account Settings -> SSH Keys –>Add SSH key的key输入框中,标题自定义,进行添加一个SSH Key。

8、把本地仓库提交到服务器:

1
2
3
4
$ git remote add origin git@github.com:username/Hello-World.git
\# Creates a remote named "origin" pointing at your GitHub repo
$ git push origin master
\# Sends your commits in the "master" branch to GitHub

注意,这里的Hello-World.git是根据你在服务器上创建的仓库名称决定的,如果服务器创建了一个Itzhai仓库,则这里为Itzhai.git。

欢迎关注我的其它发布渠道

订阅IT宅
内功修炼
Java技术栈
Java架构杂谈是IT宅精品文章公众号,欢迎订阅:
📄 网络基础知识:两万字长文50+张趣图带你领悟网络编程的内功心法 📄 HTTP发展史:三万长文50+趣图带你领悟web编程的内功心法 📄 HTTP/1.1:可扩展,可靠性,请求应答,无状态,明文传输 📄 HTTP/1.1报文详解:Method,URI,URL,消息头,消息体,状态行 📄 HTTP常用请求头大揭秘 📄 HTTPS:网络安全攻坚战 📄 HTTP/2:网络安全传输的快车道 📄 HTTP/3:让传输效率再一次起飞 📄 高性能网络编程:图解Socket核心内幕以及五大IO模型 📄 高性能网络编程:三分钟短文快速了解信号驱动式IO 📄 高性能网络编程:彻底弄懂IO复用 - IO处理杀手锏,带您深入了解select,poll,epoll 📄 高性能网络编程:异步IO:新时代的IO处理利器 📄 高性能网络编程:网络编程范式 - 高性能服务器就这么回事 📄 高性能网络编程:性能追击 - 万字长文30+图揭秘8大主流服务器程序线程模型
📄 Java内存模型:如果有人给你撕逼Java内存模型,就把这些问题甩给他 📄 一文带你彻底理解同步和锁的本质(干货) 📄 AQS与并发包中锁的通用实现 📄 ReentrantLock介绍与使用 📄 ReentrantReadWriteLock介绍与使用 📄 ReentrantLock的Condition原理解析 📄 如何优雅的中断线程 📄 如何优雅的挂起线程 📄 图解几个好玩的并发辅助工具类 📄 图解BlockingQueue阻塞队列
📄 消息队列那么多,为什么建议深入了解下RabbitMQ? 📄 高并发异步解耦利器:RocketMQ究竟强在哪里? 📄 Kafka必知必会18问:30+图带您看透Kafka
📄 洞悉MySQL底层架构:游走在缓冲与磁盘之间 📄 SQL运行内幕:从执行原理看调优的本质 📄 洞悉Redis技术内幕:缓存,数据结构,并发,集群与算法