git与github的使用
推荐的资料 点击下载
参考:
git简介
Git 是 Linux 发明者 Linus 开发的一款新时代的版本控制系统,那什么是版本控制系统呢?怎 么理解?网上一大堆详细的介绍,但是大多枯燥乏味,对于新手也很难理解,这里我只举几 个例子来帮助你们理解。
熟悉编程的知道,我们在软件开发中源代码其实是最重要的,那么对源代码的管理变得异常重要:
比如为了防止代码的丢失,肯定本地机器与远程服务器都要存放一份,而且还需要有一套机制让本地可以跟远程同步;
又比如我们经常是好几个人做同一个项目,都要对一份代码做更改,这个时候需要大家互不影响,又需要各自可以同步别人的代码;
又比如我们开发的时候免不了有bug,有时候刚发布的功能就出现了严重的bug,这个时候需 要紧急对代码进行还原;
又比如随着我们版本迭代的功能越来越多,但是我们需要清楚的知道历史每一个版本的代码
更改记录,甚至知道每个人历史提交代码的情况;
等等等类似以上的情况,这些都是版本控制系统能解决的问题。所以说,版本控制是一种记 录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统,对于软件开发领域来 说版本控制是最重要的一环,而 Git 毫无疑问是当下最流行、最好用的版本控制系统。
git安装
这里有份指南我觉得定好的 git-简明指南
全局设置git信息,在提交的时候,用户信息会记入到commit
git config —global user.name "username"
git config —global user.email "user email"
git基本原理
我自己学习git的时候也看了很多资料,这里有一份pdf推荐点击下载
你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录
,它持有实际文件;第二个是 暂存区(Index)
,它像个缓存区域,临时保存你的改动;最后是版本库Repository
,其中有个 HEAD
,它指向你最后一次提交的结果。
Merge和Rebase的区别
git merge branchname
结果看起来就像一个新的”合并的提交”(merge commit):
git rebase mywork
这些命令会把你的”mywork”分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到”.git/rebase”目录中),然后把”mywork”分支更新 为最新的”origin”分支,最后把保存的这些补丁应用到”mywork”分支上。
github简介
2008年4月10日,GitHub正式成立,地址:How people build software · GitHub ,主要提供基 于git的版本托管服务。一经上线,它的发展速度惊为天人,截止目前,GitHub 已经发展成全 球最大的开(同)源(性)社区。
**GitHub有什么用 **
- 学习优秀的开源项目
开源社区一直有一句流行的话叫「不要重复发明轮子」,某种意义上正是因为开源社区的贡 献,我们的软件开发才能变得越来越容易,越来越快速。试想你在做项目时,如果每一模块 都要自己去写,如网络库、图片加载库、ORM库等等,自己写的好不好是一回事,时间与资 源是很大的成本。对于大公司可能会有人力与资源去发明一套自己的轮子,但是对于大部分 互联网创业公司来说时间就是一切。而且你在使用开源项目的过程也可以学习他们优秀的设 计思想、实现方式,这是最好的学习资料,也是一份提升自己能力的绝佳方式!
- 多人协作
如果你想发起一个项目,比如翻译一份不错的英文文档,觉得一个人的精力不够,所以你需 要更多的人参与进来,这时候 GitHub 是你的最佳选择,感兴趣的人可以参与进来,利用业余 时间对这个项目做贡献,然后可以互相审核、合并,简直不要太棒!
- 搭建博客、个人网站或者公司官网
这个就不用多说了,现在越来越多的博客都是基于 GitHub Pages 来搭建的了,你可以随心所 欲的定制自己的样式,可以给你博客买个逼格高的域名,再也不用忍受各大博客网站的约束 与各式各样的广告了!
关于基于 GitHub Pages,后面我会写专门的博客,记得常来看看~
如果你喜欢写作,而且基于 Markdown, 并准备出版书籍,那么推荐你用 Gitbook ,技术写 作人的最爱!
个人简历
如果你有一个活跃的 GitHub 账号,上面有自己不错的开源项目,还经常给别的开源项目提问 题,push 代码,那么你找工作将是一个非常大的优势,现在程序员的招聘很多公司都很看中 你 GitHub 账号,某种意义上 GitHub 就可以算是你的简历了。而且不仅国内,很多国外的科 技公司都会通过 GitHub 来寻找优秀的人才,比如我甚至通过 GitHub 收到过 Facebook 的邀 请邮件!
配置git与GitHub
重点来了,配置好两者,我们就可以将本地代码推到远程的github仓库,也可以从github仓库拉代码到本地。
-
直接跳转博文吧~
这里面还提到了如何在一台电脑上关联多个github账号,写的非常好
接下来就如何将本地项目上传到Github
看看这里Git的使用–如何将本地项目上传到Github(两种简单、方便的方法)。后面当我逐渐熟悉git和github操作后,如果是github上克隆别人项目直接用
git clone sshurl
,sshurl就是别人GitHub的ssh链接。如果是本地项目上传到github,我一般会这么做:- 在github上新建一个空项目,里面只含有一个
README.md
文件。如何构建github项目,上面提供的pdf有说明哦~ - 在终端
cd directory
到想建立本地仓库的文件夹 git clone sshurl
将项目克隆到本地- 将项目文件复制到本地仓库文件夹
- 做好项目的改动后,就需要把项目上传到github仓库,依次使用下列命令:
- 在github上新建一个空项目,里面只含有一个
git add . //添加修改到暂存区
git commit -m '提交信息' // 提交修改
git push origin main // 把本地项目推到github仓库,其中main是分支的名字
关于branch
这里有个小坑,源于github到默认branch。
- 如果你使用
git init
命令在本地创建仓库,当前分支默认是master
- 如果是在github上创建新仓库,则默认分支是
main
(好像是因为有人投诉master有关种族歧视问题)
所有对于不同版本或者不同操纵导致主分支操作不一样时,可以按早下面方法试试:
我常使用的命令
目前都属于个人开发,用到的命令很有限,但是入门还是很不错的,有些命令上面已经提到了,这里总结一下:
- git clone sshurl // 克隆仓库到本地
- git status // 查看此时本地仓库到状态,有没有修改之类的,可以多用
- git init // 在本地新建一个git仓库,注意和clone的区别:使用clone时,本地仓库和远程仓库已经建立关联;使用init时,只是在本地建立了一个仓库,没有任何远程仓库关联,使用git push会报错,要先使用git remote进行远程关联
- git remote add origin sshurl // 将本地git仓库与远程仓库关联
- git add . //添加修改到暂存区
- git commit -m ‘提交信息’ // 提交修改
- git push origin main // 把本地项目推到github仓库,其中main是分支的名字
- git pull [origin branchname] // 远端分支(可以指定某个分支)代码更新到本地分支
- git branch // 查看所有分支,当前分支前面又个*
- git branch -d branchname // 删除branchname分支
- git push origin -d branchname // 删除远端branchname分支
- git tag version // 给当前commit打标签version,一般用作版本号
- git push origin -tags // 把标签推到github远程仓库
- git fetch origin branchname // 更新远端branchname代码到暂存区
- git merge origin/branchanme // 将暂存区的branchname分支合并到本地分支
- git log //查看当前分支提交历史
- git checkout . //放弃所有修改,但是新建的文件不行,需要手动删除
- git checkout [-b] branchname // 切换到某分支,-b 参数代表,不存在时就新建
总结
git的功能非常强大,也是公司里面开发人员的必备知识。以上这些作用为git和github的入门知识还是不错的~
欢迎来我的github主页交流