文档编号 O.C.6.01-1
项目名称 | P2P在线交易平台 | ||
---|---|---|---|
文档名称 | 多人代码协同工作方式调研 | ||
作者 | 盐析 | ||
最后更新时间 | 2021-11-22 | ||
版本更新概要 | |||
版本号 | 时间 | 更新人 | 更新摘要 |
V0.1 | 2021-11-22 | 盐析 | 协同工作调研初版 |
V0.2 |
版本控制简介
GibHub的名字源于Git,Git是一个分布式版本控制系统,让程序员团队能够协作开发项目,Git帮助大家管理为项目所做的工作,避免一个人所做的修改影响其他人所做的修改。你在项目中实现一个新功能的时候,Git将跟踪你对每个文件所做的修改。确定代码可行后,你将提交所做的修改,而Git将记录项目最新的状态,如果你犯了错,想撤销所做的修改,可轻松的返回以前的任何可行状态。
Git下载安装(windows版本)
下载链接:https://git-scm.com/downloads
下载安装成功后,在Windows栏找到Git,选择git bash,即可打开命令行界面
下载安装完成后,首先要进行git配置,在命令行中输入:
git config --global user.name "pzqu"
git config --global user.email pzqu@example.com
以后你所有的项目都会默认使用这里配置的用户信息。
Gitee远程仓库
首先在https://gitee.com/注册登录后,你可以创建自己的仓库或加入其他仓库,仓库管理者可以共同编辑仓库内的代码。
创建新仓库后,初始化README.MD文件。
Git常用命令
新建仓库
在本机打开一个文件夹作为本地git仓库,右键git bash here,即可在该目录下打开git bash
初始化&分支介绍
对于一个尚未初始化的目录,我们需要输入以下来初始化仓库:
git init
便在本地创建了一个空的git仓库,此时目录下的文件是不会被放到仓库中的。
(main)为此时所创建的分支,main/master为默认分支,通常开发者分支被命名为dev,常用分支命名如下:
创建及切换本地分支的命令如下:
添加文件到本地仓库
git add .
“.“代表当前目录下全部文件,工作区(即当前文件目录)跟踪的文件都加入到仓库暂存区中,它不提交这些文件,而只是让git开始关注他们。
git commit -m "second commit"
这时,在上一步添加到暂存区的文件加入到本地版本库。引号内的内容为对当前提交的版本说明,比如你改了什么bug,增加了什么文件,什么特性,都要写出来。
编辑远程仓库(拉取)
要知道,假如你的合作伙伴在远程创建了一个仓库,其中已经添加了他的一些文件。这时,如果按照上一节的操作直接git init,添加自己的文件,此时若想直接将你的版本推到远程,git会提示“你的提交与对方版本冲突”,因为你们相当于两个独立的仓库,不能随意合并到一起。
那么如果你想直接在你们已有工作的基础上添加或编辑要怎么办呢?
git clone https://gitee.com/sun_yu_xin/test
若你要拉取的连接是私有仓库,则需要保证你是该仓库的管理员或拥有者,本地会要求你输入用户名密码,输入后即可成功拉取。
更新远程仓库
首先要在本地添加想要连接的远程仓库:
远程仓库可以使用github,gitee,coding.net等,我们使用gitee。
git remote add neutalk https://github.com/fighterkaka22/NeuTalk_mainwindow
然后使用git pull确保你与远程版本一致,若远程版本提前或落后于本地,则会提示版本冲突,无法提交。
git pull --rebase neutalk main(前是仓库名,后是分支名)
然后将本地与远程分支名对应起来。
git branch --set-upstream-to=main main(前是本地分支名,后是远程分支名,可以不一致)
最后git push即可将修改后的成功推到远程仓库。
git push --set-upstream neutalk main
此时查看远程分支,可以发现:
补充资料
Fork与Pull Request
对于别人的远程仓库,可以单击Fork在复制对方的仓库到你的仓库,其中代码是对方仓库已有的代码。
这时你fork的这个仓库属于你自己,所拥有的权限也大于对方的仓库。(比如,原来你编辑不了对方的仓库,但你可以编辑你fork之后的仓库)所以,可以fork来对方的仓库,自己做开发并远程提交。
当你开发对方的仓库,如果想将你的更新导入到对方的仓库,以此让更多人看到你的创新,也相当于对他人工作的一种更新,可以使用pull request:
填写好对应信息并提交后,等待仓库拥有者审核。若审核通过且你修改后的代码与其版本无冲突,可以将你的修改并入对方的仓库,即你也成为了开发者之一。
.gitignore文件
Git是跟踪项目中所有文件的好工具,但是,您会希望在项目的整个生命周期中不要跟踪某些文件及其变更。例如:
- 系统文件(i.e. Mac系统的.Ds_Store)
- 应用程序配置文件(i.e. app.config, .env)
- 构建组件(i.e. *.pyc)
- 安装的依赖(i.e. node_modules)
- 个人文件(i.e. todo.txt)
- 应用程序数据和日志(i.e. .log,.sqlite)
Git 中 gitignore 概念:以.gitignore文件定义哪些文件将被 Git 排除跟踪, 被.gitignore匹配到的文件将不会显示在 Git 的Untracked files列表。
.gitignore文件的写法见https://blog.csdn.net/wnvalentin/article/details/105448739
issues与wiki
当你在远程仓库发现代码BUG,但是目前没有成型代码,需要讨论时;或者使用开源项目出现问题时,需要使用issues。
使用方法:https://blog.csdn.net/cool99781/article/details/105821546
wiki是git进行远程文档管理的一种方法。
参考链接
- https://www.cnblogs.com/wj-1314/p/7992543.html
- https://blog.csdn.net/qq_33858250/article/details/81047883
- https://zhuanlan.zhihu.com/p/64493730
- https://www.cnblogs.com/fighterkaka22/p/11801395.html
- https://www.cnblogs.com/fighterkaka22/p/15195681.html
- https://www.cnblogs.com/wj-1314/p/7992543.html
- https://blog.csdn.net/wnvalentin/article/details/105448739