【git】多人代码协同工作方式总结

文档编号 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进行远程文档管理的一种方法。

参考链接

posted @ 2021-11-29 18:29  盐析Yuki  阅读(469)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css