常用的git命令,基本工作够用了

本文详细介绍了Git的基本操作,包括克隆仓库、拉取更新、创建分支、提交修改、删除分支、处理合并冲突以及回滚提交等。重点讲解了gitpull与gitpull-r的区别,如何在不同分支间移动修改,以及如何修改已提交的commit内容。此外,还提及了一些常用的高级命令,如gitreset--hard和gitpush--force。内容适合Git初学者及日常开发中需要深入理解Git操作的开发者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 克隆远程仓库的代码到本地

git clone git@xxx.git
拉取下来默认分支名为 master

2. 拉取最新代码更新到本地

如果本地代码库没有任何修改, 直接 git pull
如果本地代码有修改,但是没有提交或者暂存,git pull时会报错;提醒你有未提交/暂存的修改。
此时,你需要根据自己需求,要么使用git stash将修改的内容暂存起来,
要么将修改git commit -m “注释内容” 进行提交,注释内容主要用来描述本次修改内容。

3. 创建本地分支

使用 git checkout -b 分支名 来创建分支,如果分支名不存在,则会创建一个新的分支并切换到新建分支,
如果分支名存在,则会直接切换到分支。

4. 在本地分支上进行修改操作,并提交

假如我们在本地名为master的分支上进行了修改,

  • 首先我们需要利用 git add . 将添加当前修改,也可以 git add 目标文件名 添加指定文件;可以使用git status 查看当前的状态;如果有某些文件在.gitignore文件里面被忽略了不让add的话, 我们可以使用 git add -f 目标文件名 进行强制添加;
  • add完之后,我们使用git commit -m “注释内容” 提交;
  • commit之后,我们使用git log 可以查看刚刚的提交记录,包括提交时写的注释内容;如果你做了不止一次修改,不想每次都重新用新的注释内容进行提交,不想要每次都生成一个新的commit节点,那么你可以使用git commit --amend 将第二次提交结合上一次的提交内容合成一个commit节点;
  • 最后,我们想将提交的修改push到远端分支上,使用git push 远端节点,假如我们想提交到远端的master分支上,我们使用git push origin master 进行不覆盖式的提交,如果想用本地的代码完全覆盖掉远端的分支,使用git push -f origin master 强制提交。

5. 删除远端分支

  • 删除远端分支
    git push origin --delete 远端分支名
  • 删除本地分支
    git branch -d 本地分支名
    git branch -D 本地分支名

6. git pull 和 git pull -r 的区别

git pull = git fetch + git merge
git pull -r = git fetch + git rebase
假设有个场景,A和B都需要push代码到origin的master上,A和B拉取的代码后,新建了自己的分支进行修改,并要提交到master上;
在这里插入图片描述
此时A的修改内容先提交到origin上;
在这里插入图片描述

那么B在提交前需要拉取最新的代码(包含A的修改的代码D),此时B有两个选择:

  • 如果他使用git pull origin master 拉取代码,使用git
    log
    查看提交记录,此时可以看到有一个commit节点叫Merge xxxxxxxxxx… 这样会形成一个菱形的提交记录;

在这里插入图片描述

  • 如果使用git pull -r origin master 可以避免这种菱形提交,会将B的提交rebase到最新master节点上,此时可能会遇到的问题是,如果B的提交和A的提交有交集的地方,会引起冲突,如果这种情况,会提示你先解决冲突conflict,需要B去比较与A的提交冲突的地方,解决完冲突之后,add更新下B的修改后,执行git rebase --continue 就可以继续pull -r的过程;过程中如果觉得有任何操作失误,可以使用git rebase --abort 随时停止pull rebase的过程,并且分支会回到rebase开始前的状态。
    在这里插入图片描述

7. 将分支A的修改提交到分支B

有时候我们可能需要将分支A上做的一些修改直接提交分支B上,我们先切换到分支B,提前git log看下分支A上需要的节点号是多少,使用git cherry-pick commit节点号,就可以将在A上做的某些改动直接pick到B上。

8.修改某次的commit内容

有些时候很多个提交节点后,发现某个节点上的修改有问题,希望回退到某个节点进行修改,此时我们可以使用git rebase -i commit节点号回退到你希望修改的节点的前一个节点处,就可以看到你需要修改的节点,我们将该节点前的pick改成edit 后保存退出,然后你就可以在这个节点继续进行修改,修改结束后使用git commit --amend进行提交,这个操作会将你当前修改合并到这个commit节点之前的修改中,提交后使用git rebase --continue 我们就可以成功回到最新的修改节点啦~

9. 还有一些比较暴力但是很好用的命令

  1. git reset --hard commit节点号
    这个命令很暴力,但是很快,当你搞不清那些节点的时候,不知道自己提交了什么鬼,想要恢复到你想回去的某次提交的时候可以使用,
  • 先用git log 查看一下之前commit的节点,找到你想退回到的某个commit id,复制下来
    在这里插入图片描述
    比如这里我想退回到最出的origin/master,其commit节点号是d9ab27dc42c753b9a1bb2163221b73f63bd490af 那么我可以使用
    git reset --hard d9ab27dc42c753b9a1bb2163221b73f63bd490af 回到这个节点。
  1. 有时候会用到 git push -u origin 分支名
  2. 使用 git squash 将很多个commit节点进行合并
  3. 本地创建分支 git checkout -b 分支名 并推至远端分支(不存在)
    使用 git push --set-upstream origin 分支名
  4. 推送本地分支至远端,并创建远程分支
    git push <远程主机名> <本地分支名>:<远程分支名>
  5. 未完待续~
### RK3399开发板GPU使用教程 #### 1. 环境准备 为了能够在RK3399开发板上充分利用其内置的Mali-T860 MP4 GPU,需要先安装必要的软件包和工具链。这通常包括但不限于编译器、调试工具以及图形库的支持。 对于libdrm库的应用开发,在RK3399平台上移植该库可以显著增强对底层硬件资源的操作能力[^1]。因此建议首先确保系统已经正确配置并能够成功构建libdrm项目。 #### 2. 安装依赖项 在开始之前,请确认已安装以下组件: - Build Essential (gcc, g++, make等) - CMake 构建工具 - Python 和 pip 工具集 - Mesa 库及其头文件 (`mesa-common-dev`) 可以通过执行如下命令来一次性完成这些基础环境的搭建: ```bash sudo apt-get update && sudo apt-get install build-essential cmake python3-pip mesa-common-dev ``` #### 3. 获取源码与编译LibDRM 获取最新的libdrm源代码,并按照官方文档说明进行本地化调整以便适应RK3399平台特性。具体操作步骤可参照相关指南或社区论坛中的实践经验分享。 下载完成后进入解压后的目录运行CMake脚本来生成makefile文件,接着就可以利用`make`指令来进行实际编译工作了。 ```bash git clone https://github.com/freedesktop/libdrm.git cd libdrm/ mkdir build && cd build cmake .. make -j$(nproc) sudo make install ``` #### 4. 编写测试程序验证GPU加速效果 编写简单的OpenGL ES应用程序以检验当前设置下能否正常调用到GPU资源。这里给出一段基于Python语言结合PyOpenGL扩展模块的小例子作为参考: ```python from OpenGL.GL import * import pygame as pg def init(): glClearColor(0.0, 0.0, 0.0, 0.0) pg.init() screen = pg.display.set_mode((640, 480), pg.OPENGL | pg.DOUBLEBUF) init() while True: for event in pg.event.get(): if event.type == pg.QUIT: exit() glClear(GL_COLOR_BUFFER_BIT) # 绘制三角形 glBegin(GL_TRIANGLES) glColor3f(1.0, 0.0, 0.0) # 设置颜色为红色 glVertex2f(-0.5, -0.5) glColor3f(0.0, 1.0, 0.0) # 设置颜色为绿色 glVertex2f(0.5, -0.5) glColor3f(0.0, 0.0, 1.0) # 设置颜色为蓝色 glVertex2f(0.0, 0.5) glEnd() pg.display.flip() ``` 上述代码片段展示了如何创建一个基本窗口并通过OpenGL API绘制简单几何形状的过程。如果一切顺利的话,则表明GPU已经被成功激活并且可以在后续工作中发挥更大作用。 需要注意的是,虽然RK3399所配备的Mali T860MP4相比起更新型号如RK3576上的Mali G52 MC3来说性能有所差距,但对于大多数日常应用场景而言仍然是完全够用的[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值