开始使用 GitHub
我自己也是刚开始使用 GitHub 没几天,写得不好
我就写自己常用的吧
2015年9月20日下午3:19更新
知乎上这个答案写得好👉天猪(刘勇)的答案
什么是 GitHub/Git ?
什么是Git
一个分布式的,文件版本控制系统
分布式,指没有物理上的「主」储存位置
文件,指的是某一个文件或者是一系列文件组成的文件树
版本控制,指的是对修改信息的记录和管理
修改,指的是多个编辑者在多个机器,或者多个时间对同一文件进行的修改
综上 Git 可以让编辑者方便的管理所有修改
什么是 GitHub ?
是一个 Git 的托管平台
安装Git
在我的这一篇文章👉这个博客建立的流程提到过了
在 Git 官网可以下载到安装包
通过查看版本信息检查是否安装成功:1
$ git --version
如果你使用 Mac,Xcode 就自带 Git
找找 Xcode -> Preference -> Download 里面的 Command Line Tools
更新好了就可以在 shell 里使用 git 命令了
为一个文件夹使用 git 管理,只用定位到文件夹下使用:1
$ git init
然后这个文件夹就变成了一个 Git 仓库
该文件夹下的所有文件都受这个 Git 仓库管理
使用Git
这里指的git使用仅限于本地
添加文件使用add
命令,提交则是commit
命令
比如我要把一个HelloWorld.c
提交到git 仓库
先把这个文件放在git的主文件夹中,然后定位到这个文件所在的文件夹使用
1 | $ git add HelloWorld.c |
就行了
Git的使用和GitHub使用有重复的,请继续往下看GitHub的使用
常用命令看这里👉知乎问题 git?
使用GitHub
就是一网站哎呀自己看说明我要玩MC去了
坑挖在这里等着填 2015年9月14日 下午9:14
2015年9月20日下午3:30 填坑
看了一些网页发现github起步实在是太困难了
在这里只能给大家,(主要是给自己)指一些方向
等看完了才能总结,总结完了才能写
不知不觉坑就挖好了
在GitHub上注册和登录
下面部分来自官网help文档的翻译
- 下载并安装git
- 打开
Terminal.app
- 告诉git你的名字,Type everything after the
$
here:
1 | $ git config --global user.name "YOUR NAME" |
- 告诉git你的email地址,这里输入的地址必须和你在注册GitHub时使用的相同, 如果你想隐藏你的email地址,请参考“Keeping your email address private”。
1 | $ git config --global user.email "YOUR EMAIL ADDRESS" |
下一步:在Git上关联GitHub
当你在Git上连接了一个GitHub知识库,你需要使用HTTPS或者SSH与GitHub关联
使用HTTPS关联(推荐)
克隆HTTPS链接对每一个知识库都有效,你可以得到一个只读或者读写的地址,取决于它公开与否,以及你的允许。
链接在哪里都有效,即使你在墙后或者使用了代理,在某些情况下,如果你选择SSH,你只能使用SSH的部分。
当你通过HTTPS在git上使用
git fetch
、git pull
、git push
、git remote
命令时,你会被要求输入GitHub的用户名以及密码。
如果你使用了两个身份的验证,你必须创建一个身份地址令牌来使用GitHub,而非你的GitHub密码。
你可以使用验证助手,这样你就不用每次登陆都输入密码了。
在git上缓存你的GitHub密码
你需要确定你的Git是1.7.10版本及以上
如果你是通过homebrew安装的git,那么你已经装好了OSXkeychain helper
下面是安装方法
- 确定你的计算机上是否已经安装了OSXkeychain helper,尝试以下命令:
1 | $ git credential-osxkeychain |
- 如果OSXkeychain helper尚未安装,使用以下命令通过curl安装:
1 | git credential-osxkeychain |
继续
1 | $ curl -s -O \ |
然后
1 | $ chmod u+x git-credential-osxkeychain |
- 将OSXkeychain helper和git安装到同一个文件夹:
1 | $ sudo mv git-credential-osxkeychain \ |
- 告诉git使用
credential.helper
来进行全局配置:
1 | $ git config --global credential.helper osxkeychain |
下一次你使用HTTPS url进行克隆的时候就会开启OSXkeychain helper缓存了,然后你再使用的时候就不会再要求你输入用户名及密码了。
以下来自于网站 git简明指南
获得一个知识库(repository)
使用以下命令以获得一个远端服务器上的知识库版本:
1 | $ git clone username@host:/path/to/repository |
工作流
你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指向你最后一次提交的结果。
添加和提交
你可以提出更改(把它们添加到暂存区(index)),使用如下命令:
1 | git add <filename> |
这是 git 基本工作流程的第一步;
使用如下命令以实际提交改动:
1 | git commit -m "代码提交信息" |
现在,你的改动已经提交到了 HEAD,但是还没到你的远端仓库。
推送
你的改动现在已经在本地仓库的 HEAD 中了。执行如下命令以将这些改动提交到远端仓库:
1 | git push origin master |
可以把 master 换成你想要推送的任何分支。
如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器,你可以使用如下命令添加:
1 | git remote add origin <server> |
如此你就能够将你的改动推送到所添加的服务器上去了。
分支
分支是用来将特性开发绝缘开来的。
在你创建仓库的时候,master 是“默认的”分支。
在其他分支上进行开发,完成后再将它们合并到主分支上。
创建一个叫做“feature_x”的分支,并切换过去:
1 | git checkout -b feature_x |
切换回主分支:
1 | git checkout master |
再把新建的分支删掉:
1 | git branch -d feature_x |
除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的:
1 | git push origin <branch> |
更新与合并
要更新你的本地仓库至最新改动,执行:
1 | git pull |
以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
要合并其他分支到你的当前分支(例如 master),执行:
1 | git merge <branch> |
在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。
这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:
1 | git add <filename> |
在合并改动之前,你可以使用如下命令预览差异:
1 | git diff <source_branch> <target_branch> |
替换本地改动
假如你操作失误(当然,这最好永远不要发生),你可以使用如下命令替换掉本地改动:
1 | git checkout -- <filename> |
此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。
假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
1 | git fetch origin |
以上