EEDrone开源四旋翼从零开始(5)--git基础

注册和环境搭建

先注册github.com的账号,官方网站: https://github.com/

需要一个邮箱,同时也要一个昵称,我的是flyloong,之后会用到。

下载git,地址:https://git-scm.com/downloads

安装时直接next到最后。

配置git

任意目录下右击,选择“Git Bash Here”,会弹出窗口,

1)    先输入如下,,注意ssh-keygen之间是没有空格的,其他的之间是有空格的

  1. ssh-keygen –t rsa –C “邮箱地址”

复制代码

2)   回车之后,会出现一行,让你输入一个保存密钥的地方,括号里面是它默认的位置,这里会让你输入几次内容,都不用输入,直接回车就可以了,可以看到如图的效果:

3)     回车之后,这样密钥就生成了,可以用记事本打开id_rsa.pub,然后全部复制,网站上去配置一下ssh key,点击箭头指示的三角图标,选择Settings,然后点击左侧的SSH Keys,之后点击右侧的Add SSH Key,这样就会出现添加SSH Key的界面,在Title这一栏填一个名字,名字随意起,之后打开刚才生成的那个文件id_rsa.pub,全选复制里面的内容到Key这一栏中,点击Add Key按钮完成操作,这时你填的邮箱会收到一封确认的邮件,不用管它。

4)  验证一下是否设置成功,在git bash下输入如下命令:

  1. ssh –T git@github.com

复制代码

如果你是第一次,会让你输入yes或no,这时输入yes就可以了,其它显示就和我这个是一样的。如果你的是出现不是这些内容,有可能是显示权限问题什么的,就应该是我上面提到的那种情况,你看一下你生成密钥时是否操作正确,目录下是否有那个known_hosts这个文件。

5)      现在配置一下用户名和邮箱:

  1. git config –global user.name “用户名”

  2. git config –global user.email “邮箱”

复制代码

到现在为止,我们就算把Git和github配置完了,现在就来托管我们的项目吧。

项目托管

回到github网页,点击New repository按钮,弹出如下界面,第一行填仓库名,就叫个text,第二行是对这个仓库的描述,之后那个Public就是公共仓库的意思,接下来的README就是在仓库里创建一个README文件,可以往里写一些介绍你这个项目的功能之类的东西,再下面那个Add gitignore按钮,可以选择你这个项目是用什么语言之类的,后面那个License是用来说明该项目遵从什么开源协议,例如我们的EEDrone遵从BSD3,选择后会在更目录下生成一个LICENSE文件,最后点击“Create repository”

然后到需要托管的项目中去,例如项目文件如下:

这里最重要的一件事就是添加”.gitignore”文件,整个有几百兆,其中大部分是IDE生成的编译中间文件,这些并没有用,每次编译都会重新生成,可以在IDE里面清除,或者写一个批处理文件清除,都没有添加忽略文件来的方便,直接用文本文件新建一个就好,内容如下:

  1. EWARM/**

  2. !*.icf

  3. !*.eww

  4. !*.ewp

  5. !*.ewd

  6. !*.s

  7. MDK-ARM/**

  8. !*.uvoptx

  9. !*.uvprojx

  10. !*.s

  11. SW4STM32/EEDrone/**

  12. !*.cproject

  13. !*.project

  14. !*.xml

  15. !*.ld

  16. SI/

复制代码

相关的语法可以参考:https://www.kernel.org/pub/software/scm/git/docs/gitignore.html

举例说明如下:

“EWARM/**”这句话的意思是将EWARM文件夹下的内容除需要保留的全部删掉,但是保留该文件夹

“!*.icf“这是EWARM文件夹下将后缀为icf的全部保留

“SI/”是将整个SI文件夹全部删掉

如果大家是使用IAR工程就使用上面的几句代码就好,Keil就选用中间的

写好保存后右击选择“Git Bash Here”

1)  输入 git init,来完成初始化工作。这时候会自动生产一个隐藏文件夹”.git”

  1. git init

复制代码

2)  增加对我们github上创建的test仓库的管理。其中origin是一个名字相当于一个宏定义,可以任意取, flyloong是我在网站上注册时使用的用户名,test.git是我为这个项目建立的仓库名。

  1. git remote add origin git@github.com: flyloong/test.git

复制代码

3)  由于我建立仓库的时候创建README.md之时,已经算一次提交了,我需要先在本地同步一下仓库的内容。本地就会多一个README.md文件。

  1. git pull origin master

复制代码

或者git pull git@github.com: flyloong/test.git

效果如下:

此时可以修改代码或者直接上传代码。

4)  下面就要把我刚创建的文件上传到到仓库上去了,首先执行增加命令,如下:

  1. git add .    (这后面是一个英文的句号)

复制代码

add后面加了一个点,是想要提交所有文件,如果想提交指定的文件,可以写文件名。

5)执行完增加命令后,要执行提交命令,如下:

  1. git commit –m “这里写下你自己的记录本次提交内容的信息”

复制代码

-m后面跟提示信息,这个提示信息是一定要写的,不仅是规则,同时也方便我们记录我们提交的过程,写清晰为什么提交或修改了什么是非常有用的。

6)提交完成后,我们就要把它推送到远程仓库上去了,命令如下:

  1. git push origin master

复制代码

这样就完成了我们要做的所有任务

之后可以继续修改代码,那么只需要执行最后面三步就可以了:

  1. git add .

  2. git commit –m “这里写下你自己的记录本次提交内容的信息”

  3. git push origin master

复制代码

如果有新的版本发布,又想要留着之前的版本,那么就可以添加tag标签了,如下:

  1. git tag V0.01

复制代码

其中V0.01是标签名

上传到网上仓库

  1. git push origin –tags

复制代码

在github网站上就有了标签了如下:

协同工作

如果想要多人同时开发,例如有账号”lb8820265”想来共同开发,步骤如下:

1)      Fork,

2)      Clone

在需要下载的地方如下输入如下指令:

  1. git clone https://github.com/flyloong/test.git

复制代码

3)      修改上传

参考上面,这里就将readme.md里面的test改成test2。

4)      在”lb8820265”用户中点击”Pull requests”:

5)      在下方可以查看本次的修改,点击”Greate pull request”

6)      添加说明:

也可以不写,点击”Greate pullrequest”

7)      同意合并

flyloong会有提醒如下:

点击弹出如下:

点击”Merge pull request”就可以合并修改了,点击Fileschanged可以查看修改的内容:

这样就完成了协调开发了。这是从个人的仓库中fork,通常开源项目是放在github组织上的,例如我们的EEDrone项目,地址是:https://github.com/eedrone,这样就可以有多个管理员,都可以允许合并操作,其他的操作类似。

其他常用指令

列出remote:                           git remote (在后面添加-v显示显示地址)

删除remote:                           git remote rm 取的名字

在本地新建一个分支:               git branch Branch1

切换到你的:新分支:                  git,checkout ,Branch1

将新分支发布在github上:       git pushorigin Branch1

在本地删除一个分支:              git branch -d Branch1

在github远程端删除一个分支:git push origin :Branch1   (分支名前的冒号代表删除)

删除错误提交的commit:

gitreset --hard <commit_id>

git push<origin> HEAD --force

其中commit_id是ID号,可以通过git log看到只要输入前面6个就可以,origin是名字

获取commit列表:                 git log

git的官方文档:https://git-scm.com/doc

(0)

相关推荐