git与github的使用


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,它指向你最后一次提交的结果。

img

Merge和Rebase的区别

  • git merge branchname

    结果看起来就像一个新的”合并的提交”(merge commit):

    image-20220416165811032
  • git rebase mywork

    这些命令会把你的”mywork”分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到”.git/rebase”目录中),然后把”mywork”分支更新 为最新的”origin”分支,最后把保存的这些补丁应用到”mywork”分支上。

    image-20220416165914263

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仓库拉代码到本地。

  1. github设置添加SSH

    直接跳转博文吧~

    这里面还提到了如何在一台电脑上关联多个github账号,写的非常好

  2. 接下来就如何将本地项目上传到Github

    看看这里Git的使用–如何将本地项目上传到Github(两种简单、方便的方法)。后面当我逐渐熟悉git和github操作后,如果是github上克隆别人项目直接用git clone sshurl,sshurl就是别人GitHub的ssh链接。如果是本地项目上传到github,我一般会这么做:

    • 在github上新建一个空项目,里面只含有一个README.md文件。如何构建github项目,上面提供的pdf有说明哦~
    • 在终端cd directory 到想建立本地仓库的文件夹
    • git clone sshurl将项目克隆到本地
    • 将项目文件复制到本地仓库文件夹
    • 做好项目的改动后,就需要把项目上传到github仓库,依次使用下列命令:
git add . //添加修改到暂存区
git commit -m '提交信息' // 提交修改
git push origin main // 把本地项目推到github仓库,其中main是分支的名字

关于branch

​ 这里有个小坑,源于github到默认branch。

  • 如果你使用git init命令在本地创建仓库,当前分支默认是master
  • 如果是在github上创建新仓库,则默认分支是main(好像是因为有人投诉master有关种族歧视问题)

所有对于不同版本或者不同操纵导致主分支操作不一样时,可以按早下面方法试试:

我常使用的命令

​ 目前都属于个人开发,用到的命令很有限,但是入门还是很不错的,有些命令上面已经提到了,这里总结一下:

  1. git clone sshurl // 克隆仓库到本地
  2. git status // 查看此时本地仓库到状态,有没有修改之类的,可以多用
  3. git init // 在本地新建一个git仓库,注意和clone的区别:使用clone时,本地仓库和远程仓库已经建立关联;使用init时,只是在本地建立了一个仓库,没有任何远程仓库关联,使用git push会报错,要先使用git remote进行远程关联
  4. git remote add origin sshurl // 将本地git仓库与远程仓库关联
  5. git add . //添加修改到暂存区
  6. git commit -m ‘提交信息’ // 提交修改
  7. git push origin main // 把本地项目推到github仓库,其中main是分支的名字
  8. git pull [origin branchname] // 远端分支(可以指定某个分支)代码更新到本地分支
  9. git branch // 查看所有分支,当前分支前面又个*
  10. git branch -d branchname // 删除branchname分支
  11. git push origin -d branchname // 删除远端branchname分支
  12. git tag version // 给当前commit打标签version,一般用作版本号
  13. git push origin -tags // 把标签推到github远程仓库
  14. git fetch origin branchname // 更新远端branchname代码到暂存区
  15. git merge origin/branchanme // 将暂存区的branchname分支合并到本地分支
  16. git log //查看当前分支提交历史
  17. git checkout . //放弃所有修改,但是新建的文件不行,需要手动删除
  18. git checkout [-b] branchname // 切换到某分支,-b 参数代表,不存在时就新建

总结

​ git的功能非常强大,也是公司里面开发人员的必备知识。以上这些作用为git和github的入门知识还是不错的~

​ 欢迎来我的github主页交流


文章作者: 小小千千
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小小千千 !
评论
  目录