目录

Git使用教程-学会参加开源项目

Git使用教程-学会参加开源项目

文章目录

🍃博主昵称: 一拳必胜客

博主主页面链接:

博主专栏页面连接:

🍑创作初心: 本博客的初心是每天分享记录自己学习的脚步,和各位技术友探讨交流,同时给同样感兴趣的朋友以参考;

博主研究方向: 渗透测试、嵌入式、机器学习;

🌸博主寄语: 感谢各位技术友的支持,您的支持就是我前进的动力 ;

‘’

https://i-blog.csdnimg.cn/blog_migrate/4076840ca215e71f931b524eeef29375.jpeg#pic_center

特别鸣谢:木芯工作室 、Ivan from Russia



🍃基础认识

  1. 是什么?

Github 简明教程 分类 编程技术 如果你是一枚Coder,但是你不知道Github,那么我觉的你就不是一个菜鸟级别的Coder,因为你压根不是真正Coder,你只是一个Code搬运工。

但是你如果已经在读这篇文章了,我觉的你已经知道Github了。

正是Github,让社会化编程成为现实。

  1. github是一个 基于git代码托管平台 ,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。

  2. Git 配置

    Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。

这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

/etc/gitconfig 文件 :系统中对所有用户都普遍适用的配置。若使用 git config 时用 –system 选项,读写的就是这个文件。

~/.gitconfig 文件 :用户目录下的配置文件 只适用于该用户 。若使用 git config 时用 –global 选项,读写的就是这个文件。

当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

在 Windows 系统上, Git 会找寻用户主目录下的 .gitconfig 文件 。主目录即 $HOME 变量指定的目录,一般都是 C:\Documents and Settings$USER。

此外,Git 还会尝试找寻 /etc/gitconfig 文件,只不过看当初 Git 装在什么目录,就以此作为根目录来定位。

用户信息

配置个人的用户名称和电子邮件地址:

$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

如果用了 –global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。

如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 –global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

git个人仓库建立

使用方法

使用当前目录作为 Git 仓库,我们只需使它初始化。

git init

该命令执行完后会在当前目录生成一个 .git 目录。

**使用我们指定目录作为Git仓库。

git init newrepo**

初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

如果 当前目录下有几个文件想要纳入版本控制 ,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:

$ git add *.c
$ git add README
$ git commit -m '初始化项目版本'

以上命令将目录下以 .c 结尾及 README 文件提交到仓库中。

注: 在 Linux 系统中,commit 信息使用单引号 ‘,Windows 系统,commit 信息使用双引号 “。

所以在 git bash 中 git commit -m ‘提交说明’ 这样是可以的,在 Windows 命令行中就要使用双引号 git commit -m “提交说明”。

🍑多说无益,如何参与开源项目?

https://i-blog.csdnimg.cn/blog_migrate/817e635418fe4b48425e4adc46bbff74.png

gitee参与项目过程:

https://i-blog.csdnimg.cn/blog_migrate/5cc382f0fc83e9eebc52d60558fa78a7.png

https://i-blog.csdnimg.cn/blog_migrate/f38443e4b0809bbc10827a192ab57555.png

  1. 打开gitee,我们以这个iot项目为例。
  2. 从 master 分支 checkout 一个新分支(注:请务必保证 master 代码是最新的)
  3. 新分支命名格式:docs/username_description,例如:docs/pnoker_新增mqtt使用说明
  4. 在新分支上编辑文档、代码,并提交代码
  5. 最后 PR 合并 到 develop 分支,等待作者合并即可———-就是pull request

github参与项目过程:

https://i-blog.csdnimg.cn/blog_migrate/9b5891c4f9e9a7e26459b8f504fbcddc.png

点Fork ,就会在自己的账号下克隆一个bootstrap仓库。然后 从自己的账号下克隆 ,这里就必须要使用git工具了,输入git指令:

git clone 复制代码

注意 一定要从自己的账号下clone仓库 ,这样你 才能推送修改 ,如果 从bootstrap作者的仓库地址克隆,因为没有权限 ,你将不能推送修改, 除非作者将你列为该仓库的协作者 ,但显然这是 不可能 的。

Bootstrap的官方仓库twbs/bootstrap、你在GitHub上克隆的仓库my/bootstrap,以及你自己克隆到本地电脑的仓库,他们的关系就像下图显示的那样:

https://i-blog.csdnimg.cn/blog_migrate/1c3b31e5294217f8ec9610573b894f51.png

如果你 想修复bootstrap的一个bug ,或者新增一个功能,立刻就可以 开始干活,干完后,往自己的仓库推送 。 如果你希望bootstrap的官方库能接受你的修改,你就可以 在GitHub上发起一个pull request 。当然,对方是否接受你的pull request就不一定了。

自己作为开源项目发起人

我们知道,git拥有极其强大的克隆和分支功能,在团队协作中,你自己作为团队项目的主干,其它 成员就各自有一条分支 ,每个人都在自己的分支上工作,互不影响,这样能最高效地开发项目。当每个人的项目功能都完成后,就是合并代码的时候了, 所有人的代码都合并 完成并没有发生错误,整个项目就完成了。那么,在Github中,该如何合并代码呢?

还是以上面创建的仓库为例,这里我做了一些操作, 使用git工具将仓库clone到了桌面 上,我们叫它本地仓库,然后在本地仓库新建了一个分支,模拟第二个程序员进行的操作,第二个程序员创建了一个test2文件,然后通过git工具推送到了Github仓库里。

https://i-blog.csdnimg.cn/blog_migrate/8055c771d92a4335523049710df60118.png

现在我们可以看到,它提示一分钟前user2分支有推送,然后我们点击Compare&pullrequest进行比较和拉取请求。

https://i-blog.csdnimg.cn/blog_migrate/fbd5b16b80e0dbf6aedde22dff384af7.png

会发现,这些分支能够自动合并,是因为当前两个分支的内容互不冲突,这样我们可以在下面填写一些关于此次合并的说明,然后点击Create pull

request进行合并。

https://i-blog.csdnimg.cn/blog_migrate/a363d83e8b6ba87de1f9fcd56b67ab42.png

继续点击Merge pull request。

https://i-blog.csdnimg.cn/blog_migrate/07b4ae2916fdcf85d6bb87f1b50a6e54.png

点击Commit进行提交。我们回到仓库主页,发现user2的文件成功进来了。

https://i-blog.csdnimg.cn/blog_migrate/c24d618ebdf58339e50f13be5c00f0a2.png

而当你的提交和其它人的提交产生了冲突,比如同时创建了一个变量,亦或是同时修改了某个文件的公共部分,此时就无法自动合并,这样,你得通过git工具将他人的代码更新到自己的本地仓库,然后在本地将冲突解决,再推送到Github,其他人再对自己的代码进行更新即可。