首页 > 其他分享 >分布式版本控制系统 Git 的使用

分布式版本控制系统 Git 的使用

时间:2022-09-29 11:45:25浏览次数:81  
标签:git -- 暂存区 控制系统 Git branch 分布式 分支

简介与安装配置

Git是目前世界上最先进的分布式版本控制系统

分布式版本控制:

即每个参与协作的人都拥有全部的代码!有一定安全隐患!所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。不会因为服务器损坏或者网络问题,造成不能工作的情况!

Git下载地址:https://git-scm.com/download/win

官网下载太慢,我们可以使用淘宝镜像下载:http://npm.taobao.org/mirrors/git-for-windows

安装

一路下一步即可,可以修改安装路径

配置环境变量

一般安装时会自动配置

 

 

启动Git

Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多

Git CMD:Windows风格的命令行

Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

查看Git的配置文件

所有的配置文件,其实都保存在本地!

查看配置 :

git config -l

查看不同级别的配置文件:

#查看系统
configgit config --system --list  

#查看当前用户(global)配置
git config --global  --list
Git相关的配置文件:
  • Git\etc\gitconfig  :Git 安装目录下的 gitconfig     --system 系统级
  • C:\Users\Administrator\ .gitconfig    只适用于当前登录用户的配置,里面保存了用户名和邮箱等信息

设置用户名与邮箱

当你安装Git后首先必须要做的事情是设置你的 用户名 和 e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息,它被永远的嵌入到了你的提交中。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要--global选项。

# --global 可简写为 -g 意为全局配置
git config --global user.name "Lamb"  #用户名 
git config --global user.email [email protected]   #邮箱

Git的基本理论与使用

Git 在本地有三个工作区域:工作区(Working Directory)、暂存区 (Stage/Index) 、本地仓库 (Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。

Git 的四个工作区域:

  • 工作区:平时存放项目代码的地方。

  • 暂存区(Stage/Index):暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

  • 历史区:又称本地仓库,这个不算工作区,而是 Git 的版本库,里面有你提交到所有版本的数据。

  • 远程仓库:托管代码的服务器

 

 

 Git的工作流程

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;(git add)

3、将暂存区域的文件提交到git仓库。(git commit)(git push)

因此,git管理的文件有三种状态:已修改(modified);已暂存(staged);已提交 (committed)

 

 

Git的使用流程

1.创建Git本地仓库

创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。

本地仓库搭建:

创建全新的仓库,需要用GIT管理的项目的根目录执行:

# 在当前目录新建一个Git代码库
$ git init

执行后可以看到,仅仅在项目目录多出了一个.git目录,关于版本等的所有信息都在这个目录里面。

克隆远程仓库:

克隆远程目录,将远程服务器上的仓库完全镜像下载一份至本地!

# 克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url]

2.暂存区操作

从工作区到暂存区

$ git add 文件路径   #暂存指定文件
$ git add . #暂存所有文件

查看文件状态(查看对应的暂存区内容)

$ git status

从暂存区撤回

$ git reset HEAD -- 文件名

3.忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立".gitignore"文件,此文件有如下规则:

#为注释
*.txt        #忽略所有.txt结尾的文件,这样的话上传就不会被选中!
!lib.txt     #但lib.txt除外
/temp        #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/       #忽略build/目录下的所有文件
doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

4.将暂存区的文件提交到历史区

提交对应的暂存区文件到历史区 (暂存区就没有了)

$ git commit . -m 描述信息

历史区数据是不能撤回的 但是它可以回滚数据来影响对应的暂存区和工作区

$ git reset --hard  版本号
参数功能场景
–hard 清空工作区与暂存区 放弃目标版本后所有的修改(将所有的修改全部删除)
–soft 保留工作区与暂存区,但是把版本之间的差异存放在暂存区 合并多个commit
–mixed(或缺省) 保留工作区清空暂存区,把版本之间的差异存放在工作区 1、有错误的commit需要修改;2、git reset HEAD清空缓存区

总结使用(第一次提交,后面的提交应切换分支)

克隆项目的提交(推荐使用)

git clone 地址
git add .
git commit . -m 第一次提交
git push origin master

自己创建的提交

git init
git remote add https://gitee.com/mr_wang_oo/react-project-library.git
git add .
git commit . -m 第一次提交
git push origin master

分支

分支命名规范

git 分支分为集成分支、功能分支和修复分支,分别命名为 master、feature 和 fix,均为单数。不可使用 features、future、hotfixes、hotfixs 等错误名称。

  • master(主分支,永远是可用的稳定版本,不能直接在该分支上开发

  • develop(开发主分支,所有新功能以这个分支来创建自己的开发分支,该分支只做合并操作,不能直接在该分支上进行开发)

  • master_check(未上线前的开发分支,该分支只做只合并操作,不能直接在该分支上开发,前期开发完成后将feature分支合并到此分支)

  • online(线上分支,由发版人员确认测试没问题后,将online_check分支合并到此分支)

  • online_check(开发主分支,所有新功能以这个分支来创建自己的开发分支,该分支只做只合并操作,不能直接在该分支上开发)

  • feature-xxx(功能开发分支,在develop上创建分支,以自己开发功能模块命名,功能测试正常后合并到develop分支,开发完成后合并到online_check分支上)

  • fix-xxx(修改bug分支,在master分支上创建,修复完成后合并到 online_check)

注意事项:

  • 一个分支尽量开发一个功能模块,不要多个功能模块在一个分支上开发。

  • feature 分支在申请合并之前,最好是先 pull 一下 master_check 分支下来,看一下有没有冲突,如果有就先解决冲突后再申请合并。

# 列出所有本地分支
git branch

# 列出所有远程分支
git branch -r

# 新建一个分支,但依然停留在当前分支
git branch [branch-name]

# 新建一个分支,并切换到该分支
git checkout -b [branch]

# 合并指定分支到当前分支
$ git merge [branch]

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

 

本文参考:https://mp.weixin.qq.com/s/Bf7uVhGiu47uOELjmC5uXQ

廖雪峰的Git学习网站:https://www.liaoxuefeng.com/wiki/896043488029600/896067008724000

 

 

 

 

标签:git,--,暂存区,控制系统,Git,branch,分布式,分支
From: https://www.cnblogs.com/qianduanLamp/p/16738817.html

相关文章

  • git submodule的使用
    1.submodule简介submodule是一种git特性,用以将一部分公共代码从主项目中抽离出来成为一个独立的git工程,并以submodule的形式被主项目使用,submodule和主项目(作为区分,本文......
  • git commit之后,回退方法
     原文 写完代码后,我们一般这样gitadd.//添加所有文件gitcommit-m"本功能全部完成" 执行完commit后,想撤回commit,怎么办? 这样凉拌:gitreset--softHE......
  • git强制覆盖
    git在切代码分支时经常碰到这样的问题:error:Yourlocalchangestothefollowingfileswouldbeoverwrittenbymerge有时本地并没有需要保存的修改,所以可以通过以下......
  • git
     Author:ShineVersion:9.0.2一、引言二、介绍三、Git安装3.1下载Git3.2安装3.3基本配置3.4测试四、专业名词五、仓库5.1新建仓库5.2工作区5.3暂存区六、基本......
  • git命令会将结果输出到单独窗口必须按q才能退出的问题
    前言   最近换了新的笔记本,执行gitbranch命令的时候总是会进入单独的页面,看着像是进入了vim编辑页,需要手动q才能退出。虽然不是啥大问题,但是每次总是需要多出这一......
  • Gitee And GitHub优秀开源资料记录
    分类链接描述数据库:SqlSugarhttps://gitee.com/dotnetchina/SqlSugar开源ORM框架源码(数据库操作)数据库:SqlSugar 从零开始-项目安装-《SqlSugar5.0文......
  • 常用Git命令
    本地修改同步到版本库:gitcommit-a初始化仓库:gitinit克隆仓库:gitclonehttp://切换到dev分支:gitcheckoutdev推送到本地版本库:gitadd*提交到服务端仓库备注“al......
  • Linux下Gitlab服务器(docker安装)
    一、Docker在线安装https://www.cnblogs.com/dabao150114/p/16739213.html二、portainer容器在线安装https://www.cnblogs.com/dabao150114/p/16739217.html三、GitLab......
  • 重温git操作
    1.git常用命令gitconfig--globaluser.name用户名:设置用户签名gitconfig--globaluser.email邮箱:设置用户签名gitinit:初始化本地库gitstatus:查......
  • CentOS git版本控制系统-本地仓库
    git版本控制系统-本地仓库分布式版本控制系统版本控制不管是在企业中,还是我们个人,我们一定都做过版本控制。比如:1.写脚本,一遍一遍的修改2.大学写论文3.写技术文档什......