github快速入门

Posted on 2014-04-30 by Shawn Wang

Posted in tools

NOTE: 这只是一篇简介帮助你快速的使用GitHub, 关于GitHub的更多介绍请访问:Here

Configuration

Username

1
$ git config --global user.name "Your Name Here"

Email

1
$ git config --global user.email "your_email@example.com"

如果我们在使用GitHub, 那么邮箱应该和GitHub邮箱保持一致

 

New Repository

Create repository on GitHub
在GitHub创建一个仓库, 如:"doodle.work"

Create README file
README文件用来描述项目信息和其他你想要展示给想要浏览这个这个项目的人。例如:安装方法、联系方式等

1
2
3
4
5
$ mkdir doodle.work  
$ git init  
$ touch name.ext   
$ git commit name.ext  
$ git remote add origin https://github.com/username/doodle.work.git

以下两项也可以直接配置.git/config

1
2
3
4
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
$ git push origin master
$ git pull

 

Fork A Repository

Fork一个Repo的意义在于, 你可以参与到一个你感兴趣的项目当中, 或者你可以使用一个项目的版本做为你的新项目的基础,或者轮子。

Fork doodle.work repository 在GitHub.com相应项目点击 Fork 按钮

Clone your Fork

1
$ git clone https://github.com/username/doodle.work.git

Configure remotes 当一个Repo被Clone后,就有一个默认的remote Repo叫做origin, 它指向的是你自己GitHub帐号的Fork,为了能够跟踪最初的Repo, 我们还需要添加另一个remote Repo叫做upstream.

1
2
3
4
5
$ git remote add upstream https://github.com/username/doodle.work.git

$ git fetch upstream

$ git merge upstream/master

Push commits 提交到Forked Repo

1
$ git push origin master

Pull in upstream changes 从upstream更新

1
$ git fetch

提交到Forked Repo

1
$ git merge upstream/master

Difference between Fetch and Pull

1
$ git pull upstream master

这会将upstream master中的更新存储在本地的Repo 另外我们通常直接使用git pull, 它相对自动化, 依赖于环境。 它会将所有提交都merge到你现在使用的分支当中。 因为这样的特点,如果你很长时间没有管理代码, 很可能造成冲突。

Fetch & Merge

1
$ git fetch upstream

从源Repo里面更新最近提交

1
$ git merge upstream/master

将获得的一些提交变更Merge到自己的你工作空间(仓库)

当你使用git fetch, git将会从指定remote上检索所有的提交将其存储在你的本地仓库里面,但并不立刻Merge到当前的分支里。这非常有用,当你想要进行merge的时候,使用git merge他会结合指定的分支并在发生冲突的时候与你进行交互

Create Branch 创建分支

1
$ git branch mybranch

切换分支

1
$ git checkout mybranch

快捷方法是

1
$ git checkout -b mybranch

完成分支工作,Merge到主线版本

1
2
3
$ git checkout master

$ git merge mybranch

删除branch

1
$ git branch -d mybranch

Pull request 想要将代码贡献到源项目, 可以像源作者发送pull request

 

SSH Key

之前我们通过github账号和密码的https的方式来进行与本地仓库和Github远程代码 仓库的交互,如果把这样的方式换成ssh key的方式来认证某台计算机设备,就可以不用重复的输入密码。这样的方式当然非常值得推荐。

Generate a SSH key

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

ssh-keygen是一个unix的ssh认证文件的生成,管理,转换工具,-t指定了生成官密钥的类型,ssh-keygen支持RSA和DSA两种类型,-C为密钥添加commit

其间选择密钥存储路径,然后输入密码,本地密钥就这样生成了

接下来就是将公钥添加到github服务器上 将公钥文件内容复制到剪贴板

1
$ clip < ~/.ssh/id_rsa.pub

登录Github账号,依次操作

add ssh-key on github

add ssh-key on github

add ssh-key on github

大功告成,设置完毕,现在让我们来测试一下,敲以下命令并输入刚才设置的密码

1
2
3
@ ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub
does not provide shell access.

从此我们就可以通过SSH代替HTTPS的方式来访问GITHUB代码仓库了。

很多人在添加了SSH Key成功后,仍然无法使用ssh的方式访问GITHUB仓库,可能是因为本地仓库的remote使用了https的url(注意:仅在 'ssh -T git@github.com' 成功后再考虑这个原因),所以在访问Github仓库时会使用https的链接方式。在.git/config文件中,修改remote中的url配置。

1
2
3
4
[remote "origin"]
    # url = https//github.com/user_name/repository_name
    url = git@github.com:user_name/repository_name
    fetch = +refs/heads/*:refs/remotes/origin/*

修改完成后,就指定当前代码仓库使用SSH方式来访问远程Github代码仓库。

Enjoy your GitHub!


github git 入门 教程

Donation

Latest Posts

在 VPS 上搭建 Cisco IPsec|L2TP over IPsec 的极简攻略

三年前我写过一篇在VPS上搭建PPTP VPN的极简攻略, 不过一年前我就不再使用 PPTP VPN 了,最主要的原因是因为 macOS 完全不支持 PPTP;另一个原因是基于 ipsec 协议的 VPN 更加安全,IPsec 协议会加密你的网络数据, 避免泄漏或者中间人攻击。所以现在对于需要全局代

为什么应该使用本地广播(LocalBroadcastManager)

从 Android 诞生已来,就一直有所谓的四大组件,BroadcastReceiver 是其中之一。 几乎在各种样的应用中都有 BroadcastReceiver 的使用,它被应用于接收系统发送的消息以及与其他应用之间的交互,但也被大量的误用于应用内部通信。 然而在同应用中使用则违背 Broadc

推荐 Vocabulary.com

阅读之前如果你还在思考背单词的意义,我建议你先想清楚,或者参考别人的意见,例如知乎的讨论 背单词是必须吗 等问题。 从英语方面来说,我肯定不是大神,小神都算不上。 我背单词的路径基本是 中学大学英语书附录 -> 高频词汇书 -> 扇贝单词 -> Vocabulary.com。 那为什么要来推荐 Vo

Comments