• git


     

    Git是什么?

      Git是分布式版本控制系统,与SVN类似的集中化版本控制系统相比,集中化版本控制系统虽然能够令多个团队成员一起协作开发,但有时如果中央服务器宕机的话,谁也无法在宕机期间提交更新和协同开发。甚至有时,中央服务器磁盘故障,恰巧又没有做备份或备份没及时,那就可能有丢失数据的风险。

      但Git是分布式的版本控制系统,客户端不只是提取最新版本的快照,而且将整个代码仓库镜像复制下来。如果任何协同工作用的服务器发生故障了,也可以用任何一个代码仓库来恢复。而且在协作服务器宕机期间,你也可以提交代码到本地仓库,当协作服务器正常工作后,你再将本地仓库同步到远程仓库。

    为什么要使用Git

    能够对文件版本控制和多人协作开发

    拥有强大的分支特性,所以能够灵活地以不同的工作流协同开发

    分布式版本控制系统,即使协作服务器宕机,也能继续提交代码或文件到本地仓库,当协作服务器恢复正常工作时,再将本地仓库同步到远程仓库。

    当团队中某个成员完成某个功能时,通过pull request操作来通知其他团队成员,其他团队成员能够review code后再合并代码。

      Git有哪些特性

    文件三种状态(modified, staged, committed)

    直接记录快照,而非差异比较

    多数操作仅添加操作

    近乎所有操作都是本地执行

    时刻保持数据完整性


      Git基本工作流程

    1.git版本控制的目录下修改某个文件

    2.使用git add命令对修改后的文件快照,保存到暂存区域

    3.使用git commit命令提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中

    安装完成后,还需要最后一步设置,在命令行输入:

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"

    因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

    注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

    Git版本控制

      创建仓库

    git init

    git clone

    git config

      保存修改

    git add

    git commit

      查看仓库

    git status

    git log --oneline

      撤销修改

      查看之前的commit

    git checkout <commit> <file>

    git checkout <commit>

    git checkout <branch>

      撤销公共修改

    git revert <commit>

      撤销本地修改

    git reset

    git clean

      重写Git历史记录

    git commit --amend

    git rebase

    git reflog

     Git协作开发

      分支

    git branch

    git checkout

    git merge

      仓库同步

    git remote

    git fetch

    git pull

    git push

    何时发生冲突:在开发者发布它们功能之前,他们需要fetch远程仓库已更新的commit到本地仓库和rebase到已更新的commit的上面。有时,本地提交与远程提交会发生冲突,git会暂停rebase过程来让你手动解决冲突。

    如何解决冲突:你可以使用git statusgit add来手动解决合并时冲突。

    1. 仍然使用远程仓库(central repository)和主分支(master branch)仍记录官方工程的历史

    2. 开发者每次开发新功能时都创建一个新分支 --- git checkout -b

    3. Feature branches应该推送到远程仓库(central repository) --- git push

    4. 发送pull request来请求管理员能否合并到主分支(master branch)

    5. 发布新功能到远程仓库(central repository)

  • 相关阅读:
    前端知识之HTML内容
    数据库之表操作
    初识数据库
    Python连接MySQL数据库之pymysql模块使用
    并发编程之协程
    个人库
    Apache conf配置文件 allow deny order files directory location解释,re(正则表达式)入门速成
    Arduino在vscode中输出乱码解决方案及解释
    UOJ Judgement Failed惨痛教训
    vscode导出插件列表
  • 原文地址:https://www.cnblogs.com/famensaodiseng/p/11790916.html
Copyright © 2020-2023  润新知