使用git与GitHub

引言

做过项目的同学就知道,代码的更新维护备份很重要,因为最近项目要求,需要多人进行协同开发一个项目,所以学习了git与GitHub协同开发,并整理一份学习笔记,以供翻阅。

什么是Git?什么又是GitHub?

众所周知,Git是一个分布式版本管理的工具,Github是一个进行代码仓库托管的开源平台。
对于代码入门小白来说,看了还是一脸懵逼,那他们到底是个什么东西???用他们要干什么???

其实他们就是你的代码管理工具,举个栗子:比如你要写一个项目,就实现一个个人博客的网站好了。你想着快点把自己的帅照po到自己亲手写的个人主页上,所以你立刻开始了写个人主页的代码。这个网站主页呢,你命名为美照meizhao(放你的照片)。

很快啊,你写好了美照区对应的代码文件,但你觉得在这个区得加个自动播放鼓掌功能,但你怕自己新加的功能影响美观,你很聪明,先将现在的美照区文件命名为美照1.0,然后继续开发的美照区命名为2.0版本。但是你欲求不满,觉得自己越写越顺,要的功能越来越多,最后有了n.0版本。
类似这样:
你的美照

啊啊啊啊啊啊,你最后并没有写完个人博客,因为你疯了。你压根忘记哪一版的美照才是自己要的真正美照。
气抖冷,你说,如果上天再给你一次机会,你要写word日记来记录每次修改。

我笑了,说:“亲,git可以帮你。”
Git能帮你记录每次文件的改动,帮你解放双手,让你不用手动管理多个“版本“。
如果你想要让你写的代码不止存在本地,也流传在网络上,你想让所有人都知道你的美照如何实现的,而且他们中的帅小伙说不定还能与你一起协作开发,那你可以用Github,通过git把代码托管到GitHub上,妈妈再也不担心我把代码一键删除啦。

简单来说,Github是免费的远程仓库,你可以在里面放自己的开源项目。而且它还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。

总结一句话:写代码,用git管理。

如何用git和GitHub开发项目?

如果你是一个人单打独斗,我也建议你用git&GitHub;如果你是团队协作,我更建议你用git&GitHub。

开始使用git

你痛定思痛,决定重新来过,使用git来帮助你进行开发,用代码完成一个沉思录的博客。
首先,你创建了一个叫Thinking的空文件,你决定在这个目录下完成你的蓝图。
你如何来把它变成一个git可以管理的仓库呢?git init命令。
你必须在Thinking文件里执行这个操作,然后就会发现,Thinking目录中出现了一个.git的文件。它表示你成功把此文件变为了一个git仓库
之后你就可以开始搞事情啦。

版本管理

首先,一开始你就得有个长远的目光,站的高点。你要做的项目不可能一次性写完,中途肯定都会有很多修改的,会加不少功能;而且最后可能发布的版本也不断迭代,从1.0到n.0。所以呢,一开始就得做好版本管理。

如何做好版本管理?

工欲善其事,必先利其器。你得先理解分支这个概念。这是git的大杀器。

用我的理解,其实分支就是记录你的工作流。git的分支一般分为以下几种:

  • 永久性分支——存在于整个项目的开始、开发、迭代、终止过程
    1. master branch:主分支——它用来存放可以作为产品,能够让用户使用的代码。你现在最终写完的1.0版本个人博客的代码就是放在这里,但是呢,可能两个月后,你的沉思录博客又更新了功能,成了2.0版本了,你也得放在这里。为了便于记录,你每一次master更新的时候,都应该用git打上标签tag
    2. develop branch:开发分支——master分支很稳定,仅仅用来发布新版本,干活的话就应该在开发分支。所有的开发者都可以在开发分支干活,代码不断测试,趋于稳定,在合并到master分支
  • 临时性分支
    1. feature branch:功能性分支,用于开发项目的功能。每开发一个新功能,最好在dev分支上新建一个功能分支,对该功能进行开发,开发完成后再合并到dev分支上,并删除此功能分支。一般命名为feature-*,*是开发的功能名字
    2. bugfix branch:bug修复分支。修复bug开的新分支。

在每个分支上进行的工作,都需要进行记录并且添加到仓库中。那么如何进行工作记录并更新仓库呢?

Git指令
  1. 添加文件到git仓库中:git add <filename>(可以反复多次使用,添加多个文件)
  2. 删除文件git rm file
  3. 修改提交指令git commit -m <message>(提交修改信息放入仓库中,每次修改之后都要使用修改提交指令)
  4. 查看仓库当前状态git status
  5. 查看修改内容git diff <file>
  6. 撤销修改git checkout --file
  7. 查看git历史命令git reflog
  8. 显示最近到最远的提交日志(3次)git log --pretty=onefile
  9. 还原版本(暂存区的修改还原)git reset --hard <版本ID>
如何进行分支管理?
  1. 创建分支并切换 git switch -b <branch>
    该命令完全体为:git checkout -b|-B <new_branch> [<start point>]

  2. 把新建的本地分支push到远程服务器:git push origin <local_new_branch>:<new_branch>

  3. 查看所有分支git branch,列出来的分支前带*表示当前分支

  4. 切换分支git switch <branch>,比如你创建了一个dev的分支,干完活后,想要update到主分支上,就得先切换回主分支

  5. 合并分支git merge <branch>,如果想要保存分支记录,使得合并后旧分支信息不丢失,要用--no-ff指令
    git merge --no-ff -m <message> <branch>

  6. 删除分支git branch -d <branch>
    删除远程分支,即推送一个空分支到远程分支:git push origin :<gitbranch>

    PS:不要忘记给master分支打标签:

    1. 首先切换到你要打标签的分支上;然后打一个新标签:git tag -a <标签名> -m <说明文字>
    2. 查看标签git tag
    3. 删除标签git tag -d <标签名>
    4. 推送本地标签git push origin --tags
    5. 删除远程标签git push origin:refs/tags/<tagname>

假设你要给你的沉思录博客开发一个记录你思想的功能

    >>> git checkout develop
    # 切换到`develop`分支

    >>> git checkout -b feature-thinking
    # 分出一个功能性分支

    >> git add .
    >> git commit -m 'finish adding thinking feature'
    # 提交更改

    >>> git checkout develop
    # 回到develop分支

    >>> git merge --no-ff feature-thinking
    # 把做好的功能合并到develop中

    >>> git branch -d feature-thinking
    # 删除功能性分支

    >>> git push origin develop
    # 把develop提交到自己的远程仓库中

使用Github

使用Github的第一步是进行注册Github账号。由于你本地Git仓库与Github仓库之间的传输是通过SHH加密的,所以要进行SSH设置。假设你已经把准备工作做好了,那么现在开始搞事情了。

本地已有Git仓库

如果你本地已经创建了一个Git仓库,又想在Github上创建一个GIt仓库,并让这两个仓库进行远程同步。你需要做的是:

  1. 登录GitHub,创建一个仓库,勾选readme.md,填入仓库名
  2. 与本地项目关联git remote add origin git@github.com:用户名/xxx.git
  3. 将本地项目push到远程库上git push -u origin master,如果本地项目已经push到远程库了,但本地做了些修改(记得先执行git的修改指令git commit -m <message>,需要把修改push到远程库上git push origin master

如果你是从零开发,我的建议是:你先创建远程库,然后在本地的,你想放置仓库的文件夹下,将远程库Clone下来git clone <https/ssh/githubCLI>。再进行远程同步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值