【环境搭建】搭建并使用github协同开发环境

    因为一些朋友们想用github做项目托管,所以我简单总结了一下github相关的基础知识点,在这里分享给各位。

    本人原创手打+翻译,希望尊重版权转载注明出处,如有错误还望指出。

    欢迎打赏点赞~

目录

1. 什么是github?

仓库(Repositories)

分支(branches)

commits(修改)

pull/push(本地/远程同步)

merge(合并)

2. github的基础操作(网页操作)

建立一个git仓库:

配置仓库:

3. github基础操作(本地指令操作)

git账户配置(git config)

初始化及配置git远程仓库(git init和git remote add)

拉取远程文件到本地(git pull)

新建和操作一个分支(git branch)

git常用指令和技巧


1. 什么是github?

    github是一个用于版本管理和团队协作的平台。它有几个很重要的基本概念:

  • 仓库(Repositories)

  仓库用来管理一个工程,假设现在我们有一个机器人工程,有控制机器人轮子的,有控制手臂的,有控制声音的代码...这些代码都有不同的功能,可能在一个项目中,每个人都要自己来完成自己负责的模块。很多项目管理者就会做一个U盘,在U盘里放很多个文件夹,让每个人把自己的代码拷到这个U盘的某个文件夹中,然后如果想让这个机器人动起来,就将这个U盘插到机器人上,然后启动各个文件夹中的内容。这个“U盘”,在github上就称为仓库。(Repositories)

  • 分支(branches)

    我们现在还是拿那个机器人和U盘举例子,现在大家每个人都把自己的模块改完了,但是插到机器人上,发现机器人一个轮子不转,负责机器人运动模块的员工张三一拍脑袋:“哎呀,轮子的程序我写错了...”。

    写错了,那就修改吧,然后把项目主管把U盘拔下来给张三,因为U盘只有一个,所以其他人只能停下手里的活看着张三改。

    项目主管为了解决这个问题,就买了很多U盘;并且给他们起了名字,第一块U盘叫master,第二块叫“Zhang san”。当出现问题时,主管将master这块U盘上的所有内容拷贝到Zhang san这块U盘上,跟张三说:“你拿这块盘改吧,这样不耽误其他人改别的。”

    这块名为Zhang san的U盘,就叫做分支(Branch)。

  • commits(修改)

    张三的性格比较内向,一直不吭声的踏实干活,很快就把问题解决了,但是张三改了他的部分后,李四负责的部分突然就出现了问题。李四找张三问是什么情况,张三说他记性不好,忘了他改了哪个部分了...

    后来为了避免这种员工之间相互甩锅的情况,经理强制每一个员工在对代码做出修改后,必须写明改了哪里,同时盖上签名章才能拷贝到U盘里。这个修改--说明改动--写入U盘的过程,就叫做commit。

  • pull/push(本地/远程同步)

    因为协同开发后程序会被传到云端git服务器,而一般的编程都是本地运行,所以我们使用push/pull将本地与云端进行同步,这个过程如下图:

    

  • merge(合并)

    张三把他那块名为Zhang san的U盘插入机器人,机器人完美运行了;主管把张三U盘中的内容拷贝到第一块U盘(merge),并且把这块U盘贴上标签,将盘里的软件卖到世界各地。

    简单来讲,一个github的工程是这样工作的:

    

 

2. github的基础操作(网页操作)

  • 建立一个git仓库:

    首先注册一个github账号并登陆,在登陆页面的右上角有你自己的头像,点击头像,进到Repositories;然后在repositories中点击“New”,新建一个仓库,并在仓库中配置仓库属性。

  • 配置仓库:

3. github基础操作(本地指令操作)

  • git账户配置(git config)

    git config用于配置git账户相关内容,git配置一共分为三个等级:

  1. 目录级别,配置方法为: git config --local user.name=[你的账户名]
  2. 全局变量级别: git config --global user.name/user.email=...
  3. 系统级别:git config --system ...

    在这其中,配置的优先级为目录--->全局---->系统,也就是说,你在目录里配置了用户账户,那么全局和系统中配置的内容失效;如果同时配置了全局和系统,那么全局的账户有效,系统的无效。

    使用git config --local -l 可以查看当前配置的账户信息。

  • 初始化及配置git远程仓库(git init和git remote add)

    我们首先在本地新建一个文件夹起一个跟工程相符的名字,例如:workspace;我们使用控制台cd进入这个文件夹,然后输入:

    git init

    这样,我们就初始化了一个git环境,同时,工程文件夹下会自动生成一个.git文件(隐藏文件),如下图:

    

    在初始化后,对远程仓库进行配置,配置的过程如下:

  1. git remote add [本地仓库名] [远程仓库的github地址,一般项目管理员会给你]
  2. 使用git remote 以及git remote get-url [本地仓库名] 检查远程仓库是否配置好

    

  • 拉取远程文件到本地(git pull)

    我们初始化了git环境后,就需要将云端仓库里的软件架构首先拷贝到本地才能够进行开发(如果你是架构师则不需要执行这个步骤,而是在工作空间里设计和编写新的文件)。

    将远程文件拷贝到本地的方法有很多,比较常见的:

    git clone [git地址],这个方法是直接将远程软件架构拷贝到本地

    git pull [git地址] [云端branch]:[本地branch],这个是以项目拉取得方式将文件“拉”到本地,方便以后修改完代码后“推”到云端git服务器。

    注意:对于git pull,需要输入github的账号和密码。

  • 新建和操作一个分支(git branch)

    在协同开发中,新建一个分支很重要,要不然很容易造成你改你的,他改他的,最后改乱套的局面。为了对分支(branch)进行说明,我们先说明以下几个概念:

  • 云服务器是不会自动给你设置分支的,除非你在网页上,或者通过本地push一个新的分支
  • 我们在新建一个项目的时候,首先要从云服务器上pull一个分支下来(master是主分支),具体指令如下:

    

  • 这样,我们就在本地新开了一个分支,如下图所示:
  • 开发项目的过程中尽量不要在主分支上进行修改,当我们pull一个分支下来后,我们使用git checkout [你自己的分支]:

    

    现在,我们就已经切换到了v5这个分支下;我们现在可以打开工程,使用IDE或者其他编辑器修改代码,例如我在工程中修改了readme.md文件:

    

    修改后,我们使用git status看一下发生了什么:

    

    可以看到git自动检测出我们修改了readme这个文件。下面,我们使用git add . 以及git commit来确认本次修改:

    

    然后我们使用git push,把它推送到云端:

    

    现在我们去云端网页看看,云端已经出现了v5这个branch

  • 整体流程如下图:

  •  

      在添加,修改或删除某个文件后,我们往往忘了改的是哪个,是否已经提交了等等,这个时候我们可以使用git status查看代码状态,例如我在我的工作空间中修改了一个文件(env_config),删除了一个文件(install.sh)。现在我们输入git status,显示如下:

    然后我进行一次git add -A(重新载入文件,包括删除掉的文件),这时显示以下文件已经被修改进了HEAD里:

  • git常用指令和技巧

  1. git remote:远程仓库配置
  2. git pull 【仓库名】 【远程分支】:【本地分支】拉取远程branch到本地
  3. git branch XXX 新建一个本地分支
  4. git branch checkout XXX 进入某个分支
  5. git add .添加全部文件到缓冲区(意味着使用commit和push所有文件都将被同步)
  6. git add -A 添加全部文件到缓冲区(包括删除的文件)
  7. git commit -m '[说明]' 提交一次修改(本地有效)
  8. git push 【仓库名】 【远程分支】:【本地分支】 将本地分支推送到远程分支上

---

参考资料:

https://www.jianshu.com/p/1a35929311cb

https://guides.github.com/activities/hello-world/

https://www.cnblogs.com/fireporsche/p/9359130.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值