当前位置: 首页 > java >正文

分布式版本控制工具Git

一.开发中为什么需要Git

因为在多人开发中Git可以管理代码,而且每个人都可以从库里面下载代码进行修改,每个人上传和修改Git都会有记录,如果出现大错误,还可以回退到正常版本。

二.Git原理

我们首先从代码库(Remote)下载代码到工作区(workspace),然后写代码,写好代码放到暂存区(index),觉得没问题了,就上传到本地库(Repository),本地库再上传到代码库(Remote)。

三. 基本操作

1.创建一个远端代码库(Remote),示例:在ubuntu上面创建远端代码库

     随便创建一个文件夹,用于存放git管理的代码库

sudo mkdir GitLib    //创建文件夹
​​​​​​​git init --bare      //创建裸代码库,创建完后,自动生成别名origin,后面用

2. 在工作区拉取远端代码库。

  • 本地端创建一个工作区的文件夹,进入Git Bash Here

  • 总共有四种协议(http,https,ssh,git)来和远端交互通,常用我们用ssh公钥进行git服务器交互就行。
    ssh-keygen -t rsa    //生成公钥
  •  一直回车,就会把公钥放在C:\Users\SF\.ssh,复制里面公钥
  • 把公钥放到服务器上面
    cd ~
    cd .ssh
    vi authorized_keys
    然后把刚刚复制的公钥放进去保存就行
  • 拉取服务器代码
     git clone ssh://harry@192.168.235.130:/home/harry/VsCodeProject/GitLib

    就会出现以下文件夹,(当然文件夹名字随便改,这是我改过的,原来的名字和服务器上面一样)

3.基础设置(用于后面知道是谁上传的代码什么的)

cd GitLib-sxf    //进入文件夹
git config user.name sxf    //设置用户名
git config user.email sxf@qq.com    //设置邮箱

4. Git各种操作指令

git add .        //把所有文件放到暂存区(index)
git add 文件名   //把单个文件放到暂存区(index)git commit .  -m "feat:function"      //把所有文件放到本地代码库(Repository)
git commit 文件名 -m "feat:function"  //把单个文件放到本地代码库(Repository)git push origin master//把存放在本地代码库的代码放到服务器上面(Remote),origin是创建服务器时候默认名,master是分支,意思是从那支分支提交到服务器origingit pull        //从服务器拉取代码到工作区git status      //查看状态,代码处于什么阶段
git log        //生成提交日志,看谁,在什么时候提交什么东西

5.逆向操作

git restore -S 文件名    //index->workspace,暂存区回退到工作区git reset --soft head^    //Repository->index,本地库回退到暂存区index
git reset --mixed head^    //Repository->workspace,本地库回退到工作区workspace
git reset --hard head^    //Repository->null,本地库直接删除之前操作git checkout        //workspace -> null,重置workspace里面的修改,例如:你添加一个函数,但你不想要了,可以使用这个
git checkout -- file
git checkout -f

6.整理操作

git commit --amend    //整理上一次提交,一个代码,你每次加一个函数就提交一次,日志里面就有你多次提交记录,显得很麻烦,如果只想日志里面出现一次,就用这个git rebase -i    //多次提交日志合并成一个

7.分支操作

git branch    //查看分支git branch 分支名    //创建分支
git checkout -b 分支名    //创建分支,并进入这个分支
git checkout 分支名    //切换到指定分支 
git switch 分支名    //切换到指定分支 git merge    //合并分支git branch -d 分支名    //删除分支如果你是在分支线上面添加修改代码,就得以下步骤更新代码数据:1.拉取 master最新数据;
git switch master//进入主线
git pull    //拉取最新代码2.先把 master合并到develop
git switch 分支名    //变更到分支
git merge master    //合并主线最新代码3.然后测试代码
进入代码解决冲突(因为人家比你先写好代码提交,所有你拉取最新代码后,占用同样位置,所有产生冲突)
git add.
git commit . -i -m "......"    //.是提交所有文件,-i是解决冲突提示文件,-m是添加提示4.合并到master,测试如果ok提交到远端
git checkout master
git merge 分支名
git push origin master

http://www.xdnf.cn/news/17109.html

相关文章:

  • javacc学习笔记 01、JavaCC本地安装与测试
  • HCIP笔记1
  • Mac中M系列芯片采用rbenv管理ruby版本
  • pytorch 学习笔记3-利用框架内网络训练糖尿病数据集
  • 深入剖析通用目标跟踪:一项综述
  • 抽像代数概念理解——陪集(coset)
  • 0.08B参数以小博大:用小模型生成媲美GPT-4o的古典诗词
  • 嵌入式学习之51单片机——串口(UART)
  • Webpack 搭建 Vue3 脚手架详细步骤
  • Unix 命令行shell基础--学习系列003
  • 跳板机实现 SSHFS 挂载
  • Tomcat虚拟主机配置详解和多实例部署
  • C + +
  • 交叉验证:原理、作用与在机器学习流程中的位置
  • SpringBoot3.x入门到精通系列:3.2 整合 RabbitMQ 详解
  • Ubuntu系统VScode实现opencv(c++)图像一维直方图
  • Ubuntu系统VScode实现opencv(c++)图像二维直方图
  • 补:《每日AI-人工智能-编程日报》--2025年7月28日
  • 软件设计 VS 软件需求:了解成功软件开发外包的关键差异
  • git操作命令和golang编译脚本
  • 补:《每日AI-人工智能-编程日报》--2025年7月27日
  • 移动端 WebView 视频无法播放怎么办 媒体控件错误排查与修复指南
  • 高精度实战:YOLOv11交叉口目标行为全透视——轨迹追踪×热力图×滞留分析(附完整代码)
  • Linux-Day01.初识Linux和基础指令
  • 基于FAISS和Ollama的法律智能对话系统开发实录-【大模型应用班-第5课 RAG技术与应用学习笔记】
  • Ubuntu 下编译 SQLCipher 4.8.0
  • CMake进阶: 使用FetchContent方法基于gTest的C++单元测试
  • sqli-labs靶场less29~less35
  • Ethereum:拥抱开源,OpenZeppelin 未来的两大基石 Relayers 与 Monitor
  • 互联网医院整体项目套表整理过程文档全流程分析