Git使用教程-学会参加开源项目
Git使用教程-学会参加开源项目
文章目录
🍃博主昵称:
一拳必胜客
博主主页面链接:
博主专栏页面连接:
🍑创作初心: 本博客的初心是每天分享记录自己学习的脚步,和各位技术友探讨交流,同时给同样感兴趣的朋友以参考;
博主研究方向:
渗透测试、嵌入式、机器学习;
🌸博主寄语: 感谢各位技术友的支持,您的支持就是我前进的动力 ;
‘’
特别鸣谢:木芯工作室 、Ivan from Russia
🍃基础认识
- 是什么?
Github 简明教程 分类 编程技术 如果你是一枚Coder,但是你不知道Github,那么我觉的你就不是一个菜鸟级别的Coder,因为你压根不是真正Coder,你只是一个Code搬运工。
但是你如果已经在读这篇文章了,我觉的你已经知道Github了。
正是Github,让社会化编程成为现实。
github是一个 基于git 的 代码托管平台 ,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。
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 “提交说明”。
🍑多说无益,如何参与开源项目?
gitee参与项目过程:
- 打开gitee,我们以这个iot项目为例。
- 从 master 分支 checkout 一个新分支(注:请务必保证 master 代码是最新的)
- 新分支命名格式:docs/username_description,例如:docs/pnoker_新增mqtt使用说明
- 在新分支上编辑文档、代码,并提交代码
- 最后 PR 合并 到 develop 分支,等待作者合并即可———-就是pull request
github参与项目过程:
点Fork ,就会在自己的账号下克隆一个bootstrap仓库。然后 从自己的账号下克隆 ,这里就必须要使用git工具了,输入git指令:
git clone 复制代码
注意 一定要从自己的账号下clone仓库 ,这样你 才能推送修改 ,如果 从bootstrap作者的仓库地址克隆,因为没有权限 ,你将不能推送修改, 除非作者将你列为该仓库的协作者 ,但显然这是 不可能 的。
Bootstrap的官方仓库twbs/bootstrap、你在GitHub上克隆的仓库my/bootstrap,以及你自己克隆到本地电脑的仓库,他们的关系就像下图显示的那样:
如果你 想修复bootstrap的一个bug ,或者新增一个功能,立刻就可以 开始干活,干完后,往自己的仓库推送 。 如果你希望bootstrap的官方库能接受你的修改,你就可以 在GitHub上发起一个pull request 。当然,对方是否接受你的pull request就不一定了。
自己作为开源项目发起人
我们知道,git拥有极其强大的克隆和分支功能,在团队协作中,你自己作为团队项目的主干,其它 成员就各自有一条分支 ,每个人都在自己的分支上工作,互不影响,这样能最高效地开发项目。当每个人的项目功能都完成后,就是合并代码的时候了, 所有人的代码都合并 完成并没有发生错误,整个项目就完成了。那么,在Github中,该如何合并代码呢?
还是以上面创建的仓库为例,这里我做了一些操作, 使用git工具将仓库clone到了桌面 上,我们叫它本地仓库,然后在本地仓库新建了一个分支,模拟第二个程序员进行的操作,第二个程序员创建了一个test2文件,然后通过git工具推送到了Github仓库里。
现在我们可以看到,它提示一分钟前user2分支有推送,然后我们点击Compare&pullrequest进行比较和拉取请求。
会发现,这些分支能够自动合并,是因为当前两个分支的内容互不冲突,这样我们可以在下面填写一些关于此次合并的说明,然后点击Create pull
request进行合并。
继续点击Merge pull request。
点击Commit进行提交。我们回到仓库主页,发现user2的文件成功进来了。
而当你的提交和其它人的提交产生了冲突,比如同时创建了一个变量,亦或是同时修改了某个文件的公共部分,此时就无法自动合并,这样,你得通过git工具将他人的代码更新到自己的本地仓库,然后在本地将冲突解决,再推送到Github,其他人再对自己的代码进行更新即可。