首页 > 其他分享 >git

git

时间:2023-10-18 09:03:50浏览次数:37  
标签:文件 git 仓库 -- 本地 分支

git应用

1. git概念

git是一个代码协同管理工具,用于多人协同开发时管理代码

git是一个开源分布式版本控制系统,可用于高效的管理大小项目

作用:

  • 防止代码丢失,可以做备份
  • 代码版本的管理,可以进行多个版本之间的跳跃
  • 可以方便的将代码在多人之间进行共享传输
  • 多人开发时,有各种模式可以方便代码管理

分布式和集中式

  • 分布式:每一个结点都保存完整的代码,没有统一的中央服务器,节点之间相互推送下载代码完成代码共享,例如git
  • 集中式:代码集中管理,每次完成的代码上传到中央管理器,然后再统一从中央管理器中下载代码使用,例如svn

2. git的特点

  • git可以管理各种文件,特别是代码项目,多在Linux和Unix系统中使用分布式管理,不同于集中式,这是git和svn的核心区别
  • git可以很好的支持分支,方便多人协作工作
  • git分布式代码分家安全,有全球唯一的commit版本号
  • git是开源的系统
  • 使用git可以脱网工作,且数据传输速度较快

3. git安装

4. git配置

主要配置git本地仓库的用户名和邮箱

git config

三种配置级别:

git config --system 系统级别(所有用户可共享的配置)
      Linux: /etc/gitconfig
git config --global 用户级别(当前终端所属用户的)
      Linux:  ~/gitconfig
git config          项目级别(当前所在文件夹或目录)
      Window/Linux: ./.git/config

4.1 查看所有配置信息

git config [--system|global] -l 

4.2 配置用户名和邮箱

git config --global user.name "xxx"
git config --global user.email "[email protected]"

5. git的基本操作

  • 初始化git
git init

在某个目录下初始化仓库后会自动产生git目录,改目录下工作的所有文档可使用git进行管理。【实际上创建本地的仓库,标识当前目录下存在一个.git目录】

【注意】如果当前已存在.git目录,则先删除再初始化

  • 查看仓库状态
git status

可以查看当前仓库的当前分支(默认主分支)上的未提交的资源状态,命令的结果中包含建议执行的命令

  • 添加文件

可以将当前目录中所有的文件或指定的文件添加到暂存区

git add 文件名|.|*
  • 删除暂存区的文件

在没有提交之前,可以将已添加到暂存区的文件删除

git rm --cached 文件名|-r .|*
  • 提交暂存区

将暂存区的文件提交到本地仓库中,每一次提交都必须注释相关信息

git commit -m "本次提交的信息"
  • 查看提交版本信息

查看当前提交的版本日志

git log [--pretty=oneline|email|full|fuller] [-n 数值]
  • 比较文件

本地文件与本地的仓库文件进行比较,显示出不同的地方、

git diff <文件名>

6. git的恢复操作

  • 从本地仓库恢复本地文件

    如果本地文件发生改变之后,想恢复到之前提交的版本内容,可以进行恢复

    git checkout <文件名> ...
    
  • 丢弃工作区的修改

    放弃当前工作目录下某一个文件的修改,实际上同一个命令

    git checkout -- <文件名> ...
    
  • 本地仓库文件的移动和删除

    【注意】移动和删除后,需要再次执行 git commit

    • 在本地仓库中将源文件移动目的目录中(本地也会移动)
    git mv <源文件> <目的目录>
    
    • 在本地仓库中删除指定的文件(本地也会删除)
    git rm <文件名>
    
  • 回到某一个版本

    • 回到上一个版本(commit)

      git reset --hard HEAD
      
    • 回到指定的版本(commit)

      git reset --hard <commit id>
      
    • 查看历史版本记录

      git reflog
      

    【注】回到某一个版本,本地文件也会发生变化,但不是真的删除,还可以通过git reset --hard <commit id>命令再恢复之前的版本

7. 标签管理

标签:在当前工作的位置添加快照,保存工作状态,一般用于版本的迭代

  • 创建标签

    git tag <标签名称>                创建标签
    git tag <标签名称> -m <提示信息>   创建标签并设置提示信息
    git tag <标签名称> <commit id>    指定某一个commit id 处创建标签
    

    【注】一个提交版本可以存在多个标签

  • 查看标签

    git tag
    
  • 查看详细标签

    git show <标签名>
    
  • 删除标签

    对已存在的标签可以删除

    git tag -d <标签名>
    
  • 恢复到指定的标签位置

    git reset --hard <标签名>
    

    【注】恢复的文件只限于本地仓库中的文件,本地新增的文件并不会受到影响

8. 临时工作区管理

用于对当前工作区(暂存区)修改但未提交的文件进行保存,以便在之后的操作时,可以恢复,保存之后可以进行切换分支,恢复之前版本等操作,操作之后在恢复未完成的工作

  • 创建保存临时工作区

    git stash [save <message>]
    

    当本地仓库中的文件修改后,并未提交时,可以保存临时工作区

    保存临时工作区成功之后,当前的工作区(暂存区)与本地仓库保持一致。此时,修改且未提交的信息则会被保存起来

  • 查看临时工作区

    git stash list
    
  • 使用指定的工作区

    将之前未提交的修改的内容进行恢复,继续再修改

    git stash apply stash@{编号}
    
  • 使用最新的临时工作区并删除

    git stash pop
    
  • 删除指定工作区

    git stah drop stash@{编号}
    
  • 删除所有的临时工作区

    git stash clear
    

9. 分支操作

分支主要用于多人协作工作,分支即获取原有代码,在此基础上创建自己的工作环境,单独开发,不会影响其他分支的操作,开发完成后再统一合并到主线分支中

创建分支的好处:安全,不影响其他人工作

9.1 分支的分类

image-20231018080905570

image-20231018080917580

注意:一个项目库只能有一个master分支和一个develop分支。项目库创建后,由版本管理员从master分支创建develop分支,项目组所有成员需要克隆服务器上的项目库到本地,然后再从develop分支创建自己的feature分支进行工作

9.2 分支操作

  • 在当前的分支下创建新的分支

    git branch <分支名称>
    
  • 查看分支

    git branch
    
  • 切换分支

    git checkout <分支名>
    
  • 创建并切换分支

    git checkout -b <分支名>
    
  • 合并分支

    将指定的分支合并到当前分支上

    git merge <分支名>
    
  • 衍合分支

    git rabase <分支名>
    

~/.gitconfig中配置友好显示分支情况

[alias]
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s
%Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

【注】衍合,不会新增一个版本号,只是在当前分支上的最后一个版本重新生成新的版本号,分支的版本靠前放

  • 删除分支

    git branch -d|D <分支名称>
    

    如果删除的分支没有合并,是不能用当前命令删除的,使用-D删除,表示强制删除指定分支

10. 远程仓库

gitee/github,以gitee为例

10.1 gitee仓库创建

  • 打开浏览器,输入 gitee.com ,先登录,登录成功之后

image-20231018082141934

  • 新建仓库

image-20231018082406833

本地生成公钥文件(ssh-keygen命令生成的),将公钥文件的内容复制到gitee上。

image-20231018082934341

image-20231018082946728

image-20231018083127149

10.2 远程仓库的操作

  • 设置本地仓库的远程仓库位置

    git remote add <仓库名称> 远程仓库的地址
    
  • 上传本地仓库的文件

    • 第一次本地仓库上传到远程仓库时的命令:

      git push -u origin master
      
    • 之后再上传到远程仓库的命令:

      git push
      
    • 强制覆盖远程仓库的文件(强制上传):

      git push -u --force origin master
      
  • 远程仓库下载

    • 第一次下载

      git clone 远程仓库的地址(http,ssh)
      

      【注】如果远程仓库给其他人下载,必须向设置它为开源的

    • 其次下载远程仓库的最新的文件

      git pull
      

标签:文件,git,仓库,--,本地,分支
From: https://www.cnblogs.com/dijun666/p/17771217.html

相关文章

  • Git
    Git介绍版本控制的概念是一种在开发过程中,用于方便管理我们(多人协作)的代码、修改、版本、工程修改,便于查看历史记录、备份、恢复以前版本的技术。版本控制器的三种类型1.本地版本控制记录文件每次的更新,对每一个版本做一个快照存储在本地计算机(适合个人。如rcs)2.集中版......
  • git配置多个ssh-key
    Windows系统下Git多个ssh-key的管理。随意百度下有好多文章,但是总是出现问题,clone、push代码出现:Error:Permissiondenied(publickey)。多数是config文件出现问题,然后Host不正确。于是自己动手,记录下步骤,发布博客希望能帮助到更多人。1、生成对应的私钥公钥cd~/.sshssh-keygen......
  • 升级gitlab
    升级gitlab目录升级gitlab一、背景:二、升级路径:三、rpm下载地址四、操作命令整理一、背景:服务器版本:gitlab-ce-13.2.2-ce.0.el8.x86_64目前最新版本:gitlab-ce-16.4.1-ce.0.el8.x86_64.rpm二、升级路径:在下面的升级路径中找到您的版本所在的位置,然后升级GitLab因此,在......
  • 你的Github账户可能被封禁!教你应对Github最新的2FA二次验证! 无地区限制, 无额外设备
    12FA的定义双因素身份验证(2FA)是一种身份和访管理安全方法,需要经过两种形式的身份验证才能访河资源和数据,2FA使企业能够监视和帮助保护其最易受攻击的信息和网络。22FA的身份验证方法使用双因素身份验证时有不同的身份验证方法。此处列出了一些最受欢迎的选项。2.1硬......
  • git 提交说明
    git分支中,main表示稳定版本,develop为开发版,dev-**为开发具体功能的版本所以,开发时一般在dev-**分支中,提交到develop版本开发功能步骤:gitcreatebranchandswitchdev-***编码gitswitchbranchdev变基合并或者变基-gitmergedev-***todev;创建......
  • GitFlow
    分支规范 Master(永远只有一个分支)发布分支,与线上保持一致,只能由release|hotfix分支合并代码,该分支不能修改只能合并Develop开发分支,由master分支拉取,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支命名规范:dev-大版本号.小版本号.递增数Te......
  • 第一章 第五六七节 git的使用介绍
    git简介1.综述git的好处​ git可以管理master,dev,bug等代码分支,互不影响减少出错的可能性;​ 有利于团队合作,让大家互不影响,同时容易解决代码冲突;2.git分支的分类,一般名称​ master<=>dev保持一致​ feature分支;bug分支;其他分支3.git的下载和安装​ git官网提供下......
  • git 基本介绍 转自官方
    本文由简悦SimpRead转码,原文地址git-scm.com起步1.1关于版本控制1.2Git简史1.3Git是什么?1.4命令行1.5安装Git1.6初次运行Git前的配置1.7获取帮助1.8总结Git基础2.1获取Git仓库2.2记录每次更新到仓库2.3查看提交历史2.4撤消......
  • 开发中常用的一些git命令及顺序性
    从远程仓库拉取代码:gitclone 仓库地址同步远程所有分支到本地(在任何已有分支下执行都行):gitremoteupdateorigin--prune  (如果要单独同步远程某个分支,则执行gitremoteupdateorigin远程分支名--prune,然后在vscode中左下角点击切换到该远程分支,则会在本地同步一......
  • Git 流程优化-实践
    用gitcz代替gitcommit操作全局安装npminstall-gcommitizencz-conventional-changelognpmi-gcz-customizable写入配置echo'{"path":"cz-customizable"}'>~/.czrc在项目根目录下写入文件.cz-config.jsmodule.exports={//可选类型typ......