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

    参考链接

  • 相关阅读:
    CFgym102394I
    Infinite Fraction Path (后缀数组)
    2016ACM/ICPC亚洲区沈阳站-重现赛
    2sat学习笔记
    bzoj4176
    bzoj3309
    6C
    3U
    3T
    3R
  • 原文地址:https://www.cnblogs.com/fighterkaka22/p/15620700.html
Copyright © 2020-2023  润新知