独立开发者系列(15)——git的使用

news2024/11/23 6:54:59

上一篇14文章触发了敏感话题,直接未过审核,看来技术博客也有敏感点。

大部分情况下,独立项目是你一个人开发,但是当你接的项目比较大的时候,你需要其他人的帮忙,这个时候你要把代码分享给别人。因为如果你使用一个人的FTP覆盖开发模式,会出现改动覆盖,当有三个人同时开发,更是噩梦般的存在。涉及到多人协作的时候,没有代码管理,会发现开发中一大半时间都是在扯皮互相覆盖干扰的代码。

  所幸,有代码版本管理这种东西,在十年前,git还没流行的时候,SVN是一种替代方案,但是现在基本远程都使用git。如果你能正常上网,建议使用github.com (代码样板非常多,最大的问题在于,经常卡的受不了),国内的替代方案gitee.com 。拉取代码之前,都需要安装git的客户端https://git-scm.com/downloads (选择自己对应系统安装对应客户端即可)。对于国内的项目开发而言,gitee.com已经足够使用,这里做个简单说明。

  注册好账号,新建仓库,这样就初始化了一个项目的地址。然后将项目地址,在本地某个文件目录下面,直接 git clone  XXX  刚我们自己创建的仓库地址,这样就可以拉取到本地了,如果是私有项目,我们需要登录一次我买的git账号。

   这样就完成了一个基础的git初始化项目搭建,然后我们将本地等待开发的代码放入到我们初始化的目录里面,进行俩次操作
git add .   //将代码提交到缓冲区
git push   //推送到远程仓库里面(也就是我们刚搭建的git仓库里面)

这样项目仓库完成第一步的初始化。我们每次开发代码之前,同样将别人git push的代码拉到本地,git  pull 这个时候,可以看到很多更新的代码语句。

 在最简单的情况下,这四个命令已经能完成最基础的协同开发功能。

    git的工作简单流程:
git分三个区,工作区,缓存区,提交区,正常改动代码都在工作区,如果完成本次改动,就行git  add  XX 操作就会将本次改动提交到缓存区,如果最终要推送的时候,git  push  xx 就是将改动的那个文件提交到远程服务器 .

       (2)git的常用命令小结
git 是一个工具,工具的使用是一个由新手到熟练的过程,在新手初期,我们需要掌握一些最常用的命令,可以认为90%的工作命令使用就是基本的10个命令。而要短暂的理解,只需要掌握这10个命令就完成了第一步的掌握。作为独立开发者,无需成为git专家。

Git  branch   查看当前的分支  一般做操作之前,需要看到自己在哪个分支
git checkout -b <branch-name>  创建一个分支,并切换过去  当你要从别人的分支下面开始开发,在别人的分支下面新建这个命令,这样就切换到你的分支上,然后就可以开发了。同样当需要控制版本A,但是又有B版本任务开发的时候,也适合这种操作

Git  merge  XX  合并某个分支,合并的时候,如果产生冲突,需要解决对应冲突,解决之后重新git add . git push 提交。

Git log  查看提交日志,产生冲突的时候,需要查看哪一步出现冲突,方便核对。

Git status  当前的git状态,会告诉你提交了没提交。有时候代码第二次打开的时候,你不知道你上次的代码提交了没有,需要查看下,当前哪些是等待提交的。

Git stash  临时保存修改,最典型的场景,你修改着你的代码,这个时候,产品紧急提了个需求,你不能将你没修改好的功能提交上去,但是又不能不优先处理产品的紧急需求,这个时候,你面临这个抉择,就需要git stash 来暂时储存当前的工作进度。

Git branch  --all  查看当前全部的分支,这个对于git项目的管理很重要,可以看到当前出现了多少分支, 多少人在提交。

   (3)git的可视化工具

要对比改动不同,可视化工具比命令行好用很多,除了git自带的GUI工具(相对没有那么好用)


特点是方便,但是不是那么方便使用。

可以使用乌龟Tortise,查看历史

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1885642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

跨境业务经验推荐:三大优秀的IP代理服务商

作为一名多年从事跨境业务的老手&#xff0c;今天我要给大家介绍几款绝对靠谱的IP代理服务商&#xff0c;保证让你的全球业务更加顺畅&#xff01; 1. 711Proxy 711Proxy以其优秀的性能和覆盖范围广而著称。对于跨境电商和国际业务来说&#xff0c;快速稳定的网络连接至关重要…

容器技术-docker5

一、docker-compose 常用命令和指令 1. 概要 默认的模板文件是 docker-compose.yml&#xff0c;其中定义的每个服务可以通过 image 指令指定镜像或 build 指令&#xff08;需要 Dockerfile&#xff09;来自动构建。 注意如果使用 build 指令&#xff0c;在 Dockerfile 中设置…

Canvas:掌握贝塞尔曲线与封装路径

想象一下&#xff0c;用几行代码就能创造出如此逼真的图像和动画&#xff0c;仿佛将艺术与科技完美融合&#xff0c;前端开发的Canvas技术正是这个数字化时代中最具魔力的一环&#xff0c;它不仅仅是网页的一部分&#xff0c;更是一个无限创意的画布&#xff0c;一个让你的想象…

QT中QDomDocument读写XML文件

一、XML文件 <?xml version"1.0" encoding"UTF-8"?> <Begin><Type name"zhangsan"><sex>boy</sex><school>Chengdu</school><age>18</age><special>handsome</special>&l…

Android自动化测试实践:uiautomator2 核心功能与应用指南

Android自动化测试实践&#xff1a;uiautomator2 核心功能与应用指南 uiautomator2 是一个用于Android应用的自动化测试Python库&#xff0c;支持多设备并行测试操作。它提供了丰富的API来模拟用户对App的各种操作&#xff0c;如安装、卸载、启动、停止以及清除应用数据等。此外…

maven设置阿里云镜像源(加速)

一、settings.xml介绍 settings.xml是maven的全局配置文件&#xff0c;maven的配置文件存在三个地方 项目中的pom.xml&#xff0c;这个是pom.xml所在项目的局部配置文件用户配置&#xff1a;${user.home}/.m2/settings.xml全局配置&#xff1a;${M2_HOME}/conf/settings.xml 优…

3.js - 纹理的 magfilter、minFilter、各向异性过滤(各项异性解决倾斜模糊问题)

效果图&#xff0c;就是一个PlaneGeometry&#xff0c;加了一个贴图&#xff0c;再设置下面这些属性&#xff0c;你就放大缩小着看吧&#xff0c;反正我看不出什么来 代码 // ts-nocheck // 引入three.js import * as THREE from three // 导入轨道控制器 import { OrbitContro…

4、音视频封装格式---FLV

FLV FLV是一种容器封装格式&#xff0c;是由Adobe公司发布和维护的&#xff0c;用于将视频编码流与音频编码流进行封装。对于任意一种封装格式&#xff0c;都有其头部区域与数据区域&#xff0c;在FLV中&#xff0c;称之为FLV Header与Body。 对于FLV Header&#xff0c;一个FL…

31 C++11

本节目标 c11简介列表初始化变量类型推导范围for循环新增加容器右值新的类功能可变参数模板 1. c11简介 在2003年标准委员会提交了一份计数勘误表&#xff08;简称TC1&#xff09;&#xff0c;使得c03这个名字已经取代了c98称为c11之前的最新的c标准名称。不过由于c03&#x…

【桌面微信多开】

桌面微信多开 步骤一&#xff1a;新建txt步骤二&#xff1a;保存修改为.bat步骤三&#xff1a;双击运行程序步骤四&#xff1a;多次点击微信 步骤一&#xff1a;新建txt echo offstart /d "D:\program\WeChat\" WeChat.exestart /d "D:\program\WeChat\" …

Xilinx FPGA:vivado利用单端RAM/串口传输数据实现自定义私有协议

一、项目要求 实现自定义私有协议&#xff0c;如&#xff1a;pc端产生数据&#xff1a;02 56 38 &#xff0c;“02”代表要发送数据的个数&#xff0c;“56”“38”需要写进RAM中。当按键信号到来时&#xff0c;将“56”“38”读出返回给PC端。 二、信号流向图 三、状态…

MessageBox的作用与用法

在C# &#xff08; Windows Forms &#xff09;中&#xff0c;MessageBox 的所有常用用法如下&#xff1a; 1. 显示一个简单的消息框 MessageBox.Show("这是一个简单的消息框。");2. 显示带标题的消息框 MessageBox.Show("这是一个带标题的消息框。", &…

美国服务器租用详细介绍与租用流程

在数字化时代&#xff0c;服务器租用已成为许多企业和个人拓展业务、存储数据的重要选择。美国作为全球科技发展的前沿阵地&#xff0c;其服务器租用服务也备受瞩目。下面&#xff0c;我们将详细介绍美国服务器租用的相关知识及租用流程。 一、美国服务器租用简介 美国服务器租…

PDI-kettle工具连接本地虚拟机Ubuntu上的数据库

PDI 配置ubuntu数据库配置Kettle工具 PDI版本&#xff1a;9.4 Ubuntu2204&#xff1a;10.11.8-MariaDB-0ubuntu0.24.04.1 Ubuntu 24.04 配置ubuntu数据库 安装 apt install -y mariadb-server配置监听地址 cat > /etc/mysql/mariadb.conf.d/99-kettle.cnf << EOF …

结构体------“成绩排序”---冒泡----与“输出最高成绩”区别

从大到小或者从小到大排序----冒泡排序---双重循环i,j 比较的时候用的是 排序的时候用的是整体 stu [ j1 ] 和 stu [ j ] 我写错为下面这个&#xff0c;交换的只是学生的出生日期&#xff0c;没有交换整体 #include<stdio.h> #include<string.h>struct student{ch…

MySQL 8.0新特性INTERSECT和EXCEPT用于集合运算

MySQL8.0.31 新版本的推出&#xff0c;MySQL增加了对SQL标准INTERSECT和EXCEPT运算符的支持。 1、INTERSECT INTERSECT输出多个SELECT语句查询结果中的共有行。INTERSECT运算符是ANSI/ISO SQL标准的一部分(ISO/IEC 9075-2:2016(E))。 我们运行两个查询&#xff0c;第一个会列…

仰邦BX.K协议对接

背景 使用BX 6K控制卡控制诱导屏显示剩余车位数&#xff0c;由于控制卡和服务端不在一个局域网内&#xff0c;所以不能使用官网提供的案例&#xff0c;官网提供的案例为控制卡为TCP Server&#xff0c;服务端为TCP Client&#xff0c;因此需要开发此程序&#xff0c;服务端左右…

docker mysql cpu100% cpu打满排查 mysql cpu爆了 mysql cpu 100%问题排查

1. docker 启动了一个mysql 实例&#xff0c;近期忽然发现cpu100% 如下图所示 命令&#xff1a; top 2.进入容器内排查&#xff1a; docker exec mysql&#xff08;此处可以是docker ps -a 查找出来的image_id&#xff09; -it /bin/bash cd /var/log cat mysqld.log 容器内m…