首页 > 其他分享 >git工具使用

git工具使用

时间:2023-08-06 18:22:09浏览次数:34  
标签:文件 git name 仓库 tag branch 使用 工具

1. git工作机制介绍

1、git工作流程

  • 从远程仓库克隆代码到本地仓库
  • 从本地仓库中checkout代码然后进行代码修改
  • 在提交代码前先将代码提交到暂存区
  • 提交到本地仓库,本地仓库中保存修改的各个历史版本
  • 修改完成后,将代码push到远程仓库和团队共享代码

2、git的版本库、工作目录、暂存区

版本库:仓库中的.git隐藏文件夹就是版本库,其中储存了配置信息、日志文件和文件版本信息等

工作目录:包含.git文件夹的目录就是工作目录,主要用于存放开发代码

暂存区:.git目录下的index文件就是暂存区,也叫stage,暂存区是一个临时保存修改文件的二进制文件。

3、工作目录下的文件状态

  • untracked未跟踪(未纳入版本控制)
  • tracked已跟踪(被纳入版本控制)
    • Unmodified未修改状态
    • Modified已修改状态
    • Staged已暂存状态

2. git常用命令

  1. 设置”用户名“和”email“

    新安装好git后需要进行用户名和email设置,Git每次提交都会使用该用户信息。

    # 设置用户信息
    git config --global user.name "userName"
    git config --global user.email "email"
    
    # 查看设置好的配置信息
    git config --list
    fit config user.name
    
    # 通过命令设置的用户信息会保存在~/.gitconfig文件中
    
  2. 获取git仓库

    # 1.在本地初始化一个git仓库
    # 新建本地仓库目录,在git bash中输入命令,初始化后生成.git的隐藏文件
    git init
    
    # 2.通过远程仓库clone一个git仓库
    git clone <url>
    
  3. 本地仓库操作

    # 1.查看当前分支信息、文件状态
    git status
    git status -s		#查看信息更简洁 M:代表已修改的文件 D:代表已删除的文件  ??:代表未跟踪的文件 A:代表添加到暂存区的文件
    
    # 2.文件加入暂存区
    git add <filename>					#添加文件到暂存
    git reset HEAD <filename>			#取消暂存区文件
    
    # 3.提交暂存区文件到本地仓库
    git commit -m "日志信息"		#会将暂存区文件一次性提交到本地仓库
    git commit			#如果没有-m会默认打开一个vim编辑器输入日志信息
    # -a参数:如果使用-a,会将修改过的所有文件直接添加到本地库,而不需要git add命令添加到暂存区
    
    # 4.删除文件
    git rm 文件名
    # 注意点:
    # git rm命令删除的工作区中文件,本地仓库中仍然有该文件,需要使用git commit才能同步删除本地仓库中文件
    # git rm命令删除文件后,会默认将该文件添加到暂存区;而直接在目录中delete文件并不会添加文件到暂存区,因此不能直接使用commit命令同步本地仓库,如果使用delete删除文件后,需要先使用git add命令将该文件添加到暂存区,在使用git commit提交到本地仓库
    
    # 5.忽略列表
    在工作目录下面创建名为.gitignore文件(在git bash中输入touch .gitignore创建),并在其中添加无需纳入Git管理的文件
    *.a		# 所有的.a结尾文件
    !lib.a	# 除了lib.a外的.a文件
    /TODO	# 忽略TODO目录
    build/	# 忽略build/下的文件
    doc/**/*.pdf	#忽略doc/directory/下的所有.pdf文件
    
    # 6.查看操作日志记录
    git log
    
  4. 远程操作命令

    # 1.查看远程仓库
    git remote	#列出每一个远程服务器简写,至少有一个origin(git仓库服务器的默认名字)
    git remote -v	#列出服务器的信息更详细
    git remote show origin	#查看origin服务器的详细信息(分支信息)
    
    # 2.添加远程仓库
    git remote add <shortname> <url>	#shortname为远程服务器名称,一般为origin;本地仓库可以对应多个远程仓库
    
    # 3.clone远程仓库 
    git clone <url>		#拷贝一份已经存在的远程git仓库,默认配置下Git仓库中的每一个文件的每一个版本都会被拉取下来
    
    # 4.移除远程仓库
    git remote rm <远程服务器名>		#移除本地远程仓库的记录
    
    # 5.从远程仓库抓取
    git fetch		#从远程仓库获取最新版本到本地仓库中的.git/object目录下,不会自动merge到本地仓库
    git fetch origin master	#指定远程仓库获取最新版本
    git merge origin/master	#将本地origin/master分支文件合并到工作区
    
    # 6.从远程仓库拉取(自动merge)
    git pull	#从远程仓库获取最新版本并mmerge到本地仓库
    git pull origin master	#指定拉取的远程仓库
    # 注意
    # 如果工作区中有未被跟踪的文件,而远程中也有同名文件,git pull拉取后不会自动merge,而是需要先处理未跟踪的同名文件,再手动git merge
    # 如果是本地新创建的仓库,并且仓库中存在文件,再从远程仓库中拉取文件会报错:refusing to merge unrelated histories,此时需要在git pull命令后加入参数--allow-unrelated-histories
    
    # 7.推送代码到远程
    git push [remote-name] [branch-name]	#推送本地branch_name中代码到远程仓库
    # 注意推送的内容都是添加到本地仓库的内容
    
  5. 分支操作

    # 1.查看分支
    git branch			#列出所有本地分支
    git branch -r		#列出所有远程分支,远程分支以(remote/)开头
    git branch -a		#列出所有本地和远程分支
    
    # 2.创建分支
    git branch [branch_name]		#创建本地分支
    
    # 3.切换分支
    git checkout [branch_name]		#切换到指定分支,切换后本地目录下文件也会对应修改
    
    # 4.推送至远程仓库分支
    git push [origin_name] [branch_name]		#branch_name为要push的本地分支
    
    # 5.合并分支
    git merge [branch_name]		#合并指定branch_name分支到当前分支
    # 冲突处理
    # 如果在两个不同分支中对同一个文件都进行了不同的修改,在使用git merge后会提示冲突,此时需要手动打开文件处理冲突的内容,并将修改后的文件使用git add标识冲突已修改,最后使用git commit提交文件
    
    # 6.删除分支
    git branch -d [branch_name]		#删除branch_name分支
    git push origin -d [branch_name]	#删除远程仓库中的branch_name分支
    # 对于分支中进行了一些开发动作,并且没有merge或者push到远程的分支,需要使用-D命令强制删除分支
    git branch -D [branch_name]
    
  6. Git标签操作

    Git可以给某个分支某个特定时间点的commit状态打上标签,表示重要节点。利用标签,可以很方便的切换到标记时commit的状态(需要和branch一起使用)。

    比较有代表性的标签用法为:使用标签来标记发布节点(v1.0、v2.0)等。

    # 1.列出已有标签
    git tag		#列出所有tag
    git show [tag_name]		#查看指定tag的信息
    
    # 2.创建新标签
    git tag [tag_name]		#创建tag_name的标签,该标签指向当前branch最新的commit
    git tag -a [tag_name] -m "messiage"	#创建带备注信息的标签
    git tag [tag_name] [commit_id]		#为指定的提交版本(commit_id取前几位即可)打标签,commit_id可以使用git log --pretty=oneline查看所有分支的提交历史和commit_id
    
    # 3.将标签推送至远程仓库
    #默认git push推送代码时并不会推送tag,因此必须显性地推送标签到服务器
    git push [remote] [tag_name]		#将标签tag_name推送至远程
    git push [remote] --tags			#一次性推送本地所有标签
    
    # 4.检出标签
    #使用branch和tag配合使用,来检出标签对应状态的分支版本,在使用该命令前,需要已经使用git tag [tag_name]为特定的commit创建好标签
    git checkout -b [branch][tag_name]	#根据tag_name标定的节点创建一个新的branch,如git checkout -b dev v1.0 根据v1.0标签创建一个dev分支
    
    # 5.删除标签
    git tag -d [tag_name]		#删除本地tag_name标签
    git push origin :refs/tags/[tag_name]		#删除远程标签
    

3. TortoiseGit工具使用

标签:文件,git,name,仓库,tag,branch,使用,工具
From: https://www.cnblogs.com/ray93/p/17609696.html

相关文章

  • reg和wire+fsdb转文本+FIQ和IRQ+桶形移位+数据转换+数据同步+NRZ和NRZI+加法器有效使
    reg和wirehttps://mp.weixin.qq.com/s?__biz=MzUyNzA2MDA0OQ==&mid=2247531642&idx=1&sn=be10436fa547d894cf58bbffac48a0fd&chksm=fa076144cd70e8524cbc108db18e5fdf9472a0ea9e2b14f4b55d3d3d936136bc50b7b4c30589&scene=27wire可以作为模块的输入和输出,但是reg只能作为模......
  • Python logging模块怎么使用,你会了吗?
    Pythonlogging模块使用在开发和维护Python应用程序时,日志记录是一项非常重要的任务。Python提供了内置的logging模块,它可以帮助我们方便地记录应用程序的运行时信息、错误和调试信息。本文将介绍如何使用Pythonlogging模块进行日志记录。logging模块logging是Python自带的用于记......
  • 神经网络可视化工具
    目录1.pipinstallonnx2.根据以下脚本把.pt文件转换成.onnx文件3.在网页打开onnx文件进行可视化展示使用onnx工具能可视化的展示神经网络的结构,便于理解和学习。1.pipinstallonnx2.根据以下脚本把.pt文件转换成.onnx文件"""ExportsaYOLOv5*.ptmodeltoONNXandTorc......
  • 陀螺仪的使用及四元数解算(MPU6050为例)
    陀螺仪的介绍常用的六轴陀螺仪有MPU6050,icm-20602。MPU6050基本上只用软件IIC驱动,速率较慢,数据漂移也相对大一点。陀螺仪的使用以MPU6050为例。软件IIC驱动->MPU6050寄存器基本配置->读取原始数据->将原始数据滤波后使用。原始数据可以使用互补滤波,卡尔曼滤波,解算四元......
  • bazel 使用 gtest/gmock 报错 Constraints from @bazel_tools//platforms have been r
    问题描述运行bazeltest命令,遇到错误:“Constraintsfrom@bazel_tools//platformshavebeenremoved.Pleaseuseconstraintsfrom@platformsrepositoryembeddedinBazel,orpreferablydeclaredependencyonhttps://github.com/bazelbuild/platforms.Seehttps://gi......
  • 使用C#的窗体显示与隐藏动画效果方案 - 开源研究系列文章
    今天继续研究C#的WinForm的显示动画效果。上次我们实现了无边框窗体的显示动画效果(见博文:基于C#的无边框窗体动画效果的完美解决方案-开源研究系列文章),这次介绍的是未在任务栏托盘中窗体的显示隐藏动画效果的实现代码。1、项目目录;下面是项目目录,由基本的......
  • git-bash命令
    Sometimesit’saboutdoingtherightthing,evenifit’spainfulinside.有时候就是要做对的事,哪怕内心万分痛苦。01git-bash命令代码说明ls#llist查看当前目录下的内容cd#changedirectory更改运行目录(文件名不区分大小写)pwd#printworkingdirec......
  • [Microsoft Azure] 使用 Microsoft Azure VM 快速创建宝塔面板并安装 WordPress 博客
     视频演示:[MicrosoftAzure]使用MicrosoftAzureVM快速创建宝塔面板并安装WordPress博客-Bilibili概述:创建AzureVM配置AzureVM安装宝塔面板安装WordPress步骤1:创建AzureVM首先,登录到MicrosoftAzure门户(https://portal.azure.com/)并使用您的Micros......
  • ChatGPT:怎样打造智能客服体验的重要工具?
    ChatGPT:人工智能的交互式对话伙伴"可以理解为以下几个方面:1.ChatGPT:ChatGPT是一个人工智能系统,专门设计用于进行对话和交流。它基于自然语言处理和深度学习技术,能够理解人类的语言输入并做出相应的回应。2.人工智能的:ChatGPT是由人工智能技术驱动的,它通过算法和模型来模拟人类的对......
  • 开发工具快捷键(IDEA\Eclipse)
    ECLIPSECTRL+SHIFT+R:打开资源CTRL+O:快速OUTLINECTRL+E:快速转换编辑器CTRL+2,L:为本地变量赋值ALT+SHIFT+R:重命名ALT+方向键:回退上个页面CTRL+M:全屏CTRL+ALT+H:查询方法引用ALT+SHIFT+R:重命名方法名、属性或者变量名CTRL+SHIFT+X大......