软件构造虽然结课了,但是给我的一个巨大收获之一就是使用git管理代码。
Git是目前世界上最先进的分布式版本控制系统。其基本原理大概如下图所示
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
在电脑上安装好git后,只需在一个你想要的工作目录右键
点击git bash here
如果不是clone下来的项目,没有.git文件,需要第一步进行初始化本地仓库,输入git init指令。
然后使用git add指令对你想要上传的文件进行跟踪。
使用git commit指令进行提交。
接下来就需要添加远程仓库,使用git remote add origin + 地址 的方法
然后只需要git push origin master就可以将文件提交到github上了。
如果想要建立分支,使用git checkout -b + 分支名 ,然后再进行commit就行了
以上是最基本的操作,在本学期基本够用了,不过就算结课了,以后还是要使用git,那么就需要了解一些更多的方法。
首先就是这学期没怎么用到的分支合并方法
首先去创建一个分支
git branch change
再进行分支切换
git checkout change
代码合并(将分支的代码合并到主分支上)
git checkout master
git merge change
删除分支
git branch -D change
比如说现在有一个远程版本库的Git地址是https://github.com/example.git,就可以使用下面的命令将代码下载到本地
git clone https://github.com/example.git
之后可以在这份代码的基础上进行一些修改和操作
修改完毕后可以直接执行git commit -a操作进行提交更新
然后可以使用git push orign master进行重新上传
其中orign部分制定的是远程版本库的Git地址,master部分制定的是同步到哪一个分支上。
接下来看一下如何将远程版本库上的修改同步到本地。Git提供了两种命令来完成这个功能,分别是fetch和pull
git fetch orign master
执行这个命令后,会将远程版本库上的代码同步到本地,不过同步下来的代码并不会合并到任何一个分支上去,而是保存到一个orign/master分支上,这时候可以通过diff命令来查看远程版本库上修改了哪些内容
git diff orign/master
之后再调用merge将orign/master分支上的修改合并到主分支上
git merge orign/master
而pull 命令则是相当于将fetch和merge两个命令放在一起执行了,它可以从远程版本库获取最新的代码并且与本地合并
git pull orign/mater
还有git log指令可以进行记录的显示,指令种类部分如下:
git log --follow <filePath>显示特定文件的历史更改记录
git log -g显示所有的记录(包括丢失的),用来做数据恢复很方便,等同于命令git reflog
git log <revirsion range>显示已定范围的log
git log --merges显示所有的merge记录
还有git log --graph,这个也是我在lab3中用到的,用来显示commit和分支记录
除此之外,git还有图形客户端,选择git GUI here
这个可以用手动操作的方法对仓库进行管理
这个是进行代码克隆,将远程仓库的代码克隆到本地。
可以发现全部都是可视化的操作,相当于将每一条指令变成了一个按钮。其中commit push等应有尽有,也是相当强的工具。
本学期没有使用过git GUI,所以各种使用方法在此也不进行赘述了,可能以后会尝试使用一下?
总而言之,git是实现代码项目管理的强大工具,是一个程序员必然要掌握的工具,有很多操作值得我们学习 ,老师也在群里发了git的中文官方手册,有条件的话本人会进行学习,以上便是本学期软件构造最后一个博客,在最后还是要感谢老师和助教们!