常用Git命令

2023-05-16

通过git命令可以对项目代码库执行克隆、拉取、提交等操作。常用的git命令有如下

git clone

克隆代码库,把远程代码库克隆到本机当前目录,如
$ git clone https://github.com/PX4/PX4-Autopilot

如果代码库包含子代码库,可以加上–recursive选项,递归克隆包含的所有子代码库
$ git clone https://github.com/PX4/PX4-Autopilot --recursive

这一步等同于下面的两步
$ git clone https://github.com/PX4/PX4-Autopilot
$ git submodule update --init --recursive

git submodule update

更新子代码库
$ git submodule update --init --recursive

其中,–init表示初始化,–recurve表示递归

更新某个指定的子代码库,如
$ git submodule update --init --recursive – ‘Tools/sitl_gazebo’

加上–force选项,可以进行强制更新,如
$ git submodule update --init --recursive --force – ‘Tools/sitl_gazebo’

git fetch&pull
从远程代码库拉取代码到本地
$ git fetch origin branch_name

把远程的分支拉取到本地,并和当前分支merge
$ git pull origin branch_name

pull和fetch的区别在于,fetch只是从远程拉取分支到本地但是并不与本地的对应分支merge,pull拉取远程分支并与本地的对应分支进行merge

$ git pull
$ git pull origin
从远程拉取当前分支并进行merge

git push
把本地仓库推送到远程
$ git push
把本地的当前分支推送到远程

如果是新建的分支,则需要指定远程分支名,并设定–set-upstream选项
$ git push --set-upstream orign new_branch

–set-upstream选项使当前分支与远程分支关联起来,后续推送时只需运行git push,而不必指定远程分支名

通过git push命令删除远程分支
$ git push origin --delete branch_name

git branch
查看分支信息
$ git branch

查看远程分支信息
$ git branch -r

查看所有分支信息
$ git branch -a

创建一个分支
$ git branch new_branch
new_branch为新建分支名,新建分支的内容和当前分支一样

修改分支名称
$ git branch -m old_branch_name new_branch_name

删除一个分支
$ git branch -d branch
$ git branch -D branch
-D为强制删除

git checkout
检出一个分支
$ git checkout branch_name

检出一个commit
$ git checkout <commit_id>
$ git checkout HEAD^
等。commit_id为提交号,HEAD^为当前checkout版本的上一个提交。

创建并切换到该分支
$ git checkout -b new_branch
其中new_branch为新建的分支名,新建分支的内容和当前分支一样

checkout还有一个功能,就是清空当前更改,其实就是重新检出所有文件
$ git checkout .

git add
将工作区的文件修改提交到缓存区
$ git add <file1> <file2>
其中<file1>,<file2>等为需要提交的缓存区

将某个目录提交到缓存区
$ git add <path>

将当前目录所有文件提交到缓存区,包括新增文件(不包括删除文件)
$ git add .

将所有修改提交到缓存区,包括文件删除
$ git add --all

git merge
合并分支
$ git merge branch_name
把分支合并到当前的分支,branch_name为需要合并的分支名称

git commit
提交到本地仓库
$ git commit -m ‘message’
message为同步提交的备注信息,在git commit之前需用git add提交修改到缓存区,不然不会提交到库中

提交到本地仓库,同时先提交到缓存区
$ git commit -a -m ‘message’
-a选项表示同时先git add提交到缓存区,不用另外运行git add。

如果有文件新增或者删除的话,还是需要先运行git add .,或者git add --all,再运行git commit。如
$ git add --all
$ git commit -m ‘commit message’

git stash
把当前的更改暂存起来
$ git stash

把之前暂存的修改回复出来
$ git stash pop

git tag
给现有的commit打上一个tag
$ git tag v1.0
如上给当前的checkout打上一个v1.0的标志

显示所有的tag
$ git tag
或者
$ git tag -l

显示某一个特定的tag
$ git show v1.0

删除一个tag
$ git tag v1.0

把本地的tag推送到远程
推送某个tag,比如v1.0
$ git push origin v1.0

推送所有tags
$ git push --tags

git clean
清除未加入到库的文件或文件夹
$ git clean -df
-d选项表示目录,-f选项表示文件。
如果是已跟踪的文件或文件夹,则可以用git reset或git stash命令清除修改,回退到前面一个commit

git reset
用于回退版本,重置修改,回复至之前的commit状态

$ git reset --hard #回退当前版本,放弃全部修改
$ git reset --hard HEAD^ #回退至之前一个版本
$ git reset --hard HEAD~n #回退至之前n个版本
$ git reset --hard commit_id #回退到某一个id号指定的commit

选项 --hard表示当前修改内容全部清除,回退到之前的内容。如果不加这个选项或者 --soft选项,则表示保留当前修改内容,只需要重新commit,就可以提交当前的修改。

git stash
把修改放置到暂存区
$ git stash
运行命令之后,程序恢复至修改之前,可以通过
$ git stash pop
恢复修改

git status
查看目前分支状态,包含文件修改状态
$ git status

git diff
查看目前文件的修改内容
$ git diff

查看两个分支的差别
$ git diff branch1 branch2

git log
查看当前分支的提交记录
$ git log
这个查询会列出所有提交记录以及对应的提交信息

查看当前分支的提交记录,并显示文件修改记录
$ git log --raw

详细的可以参考git的官方参考文档:https://git-scm.com/docs

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

常用Git命令 的相关文章

随机推荐

  • Linux常用软件包安装工具及配置方法(apt-get, pip, dpkg)

    通常Linux需要安装 卸载软件包或模块 xff0c 这里以Ubuntu系统为例 xff0c 其它Linux系统相同或者有对应类似的命令 1 apt 用于安装软件包 xff0c 如 sudo apt install cutecom 安装cu
  • Linux系统下which, whereis, locate的用法

    Linux系统下可以通过which whereis locate等命令来查找文件 程序的所在位置 1 which 通过which命令查找可执行文件 命令的位置 xff0c 比如 which ls 查找ls命令所对应的执行文件位置 xff0c
  • Linux下的链接与ln(link)命令

    最近安装了多个版本的python3 xff0c 涉及到了链接的问题 链接有点像Windows下的快捷方式 xff0c 本身是一个文件 xff0c 指向另一个文件或应用程序 xff0c 也可以指向一个目录 在访问这个链接的时候 xff0c 等
  • 当前主流目标识别(Object Detection)算法

    参考链接 xff1a https blog csdn net librahfacebook article details 103114747 https blog csdn net weixin 43196118 article deta
  • Ubuntu 18.04安装NVIDA显卡驱动

    Ubuntu 18 04安装NVIDIA显卡驱动方法比较简单 在Ubuntu系统安装之后 xff0c 通过运行程序按键 xff08 即Window按键 xff09 搜索运行Software amp Updates程序 xff0c 在Addi
  • Ubuntu 18.04安装CUDA 11.4.3和cuDNN 8.2.4

    CUDA和cuDNN为NVIDIA支持GPU运算以及深度神经网络计算加速的算法库 通常需要安装以支持利用GPU加速神经网络的训练和推理 在已经安装NVIDIA显卡驱动的情况下 xff0c 可以通过nvidia smi查看显卡信息和适合的CU
  • Ubuntu 18.04下测试YOLO v4

    在Ubuntu 18 04下测试了YOLO的方案 选择安装的是CUDA 11 4和cuDNN 8 2 xff0c 在测试v3版本时遇到了编译的问题 所以选择v4版本 参考链接 xff1a https pjreddie com darknet
  • 在Jetson Nano上安装NoMachine

    最近需要对Jetson Nano进行操作 xff0c 在它的上面测试目标识别的程序 习惯了用NoMachine远程进行操作 xff0c 所以先在Nano安装NoMachine Nano采用的是通过镜像刻录的Ubuntu 18 04系统 参考
  • Linux系统开机自启动程序设置

    用户可以在Linux系统配置自启动的程序 xff0c 可以通过多种方式来实现 1 rc local 系统启动阶段 xff0c 系统根据启动层级运行 etc rcN d目录下脚本 xff08 N为0 6之间的数字 xff0c 表示启动层级 x
  • 【Android】App安装提示“该安装包未包含任何证书”问题处理

    根据客户反馈 xff0c 安装App时会出现安装失败的问题 xff0c 如下图 xff1a 安装失败就算了 xff0c 还被怀疑我亲自动手打包的App不是正版 xff0c 这不能忍 xff0c 这个问题我一定要处理掉 可后来发现我错了 xf
  • Ubuntu系统apt-get, pip国内源设置

    Ubuntu系统默认设置apt get pip的源为国外服务器 xff0c 速度较慢 xff0c 以及有时有连接不上的情况 可以设置成国内的源以提高下载速度和稳定性 1 apt get apt get的源设置通过 etc apt sourc
  • 在Jetson Nano上十行代码实现目标检测(jetson_inference)

    网上有一个10行代码搞定目标检测的视频教程 参考网址 xff1a https www bilibili com video av91150116 经测非常实用 xff0c 通过10行代码实现目标检测 xff0c 在Jetson Nano上迅
  • 问题解决:Error: Can’t initialize nvrm channel

    在Jetson Nano安装好环境之后 xff0c 使用jupyter notebook调试python程序 xff0c 启动 jupyter notebook 之后 xff0c 在terminal出现连续的提示 Error Can t i
  • 问题解决:/usr/lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block

    在测试jetson utils实现视频载入时出现如下的错误 usr lib aarch64 linux gnu libgomp so 1 cannot allocate memory in static TLS block 经查询是libg
  • 在Jetson Nano安装测试YOLO v5目标识别示例

    参考链接 https blog csdn net carrymingteng article details 120978053 https blog csdn net weixin 43947712 article details 115
  • 问题解决:ImportError: The _imagingft C module is not installed

    在测试YOLO v5时出现错误提示 xff1a ImportError The imagingft C module is not installed 经查是pillow库的问题 解决方法 重新安装pillow xff0c 先卸载已有的pi
  • Jetson Nano设置风扇自启动

    Jetson Nano跑一些如目标识别等需要较大计算量的程序 xff0c 散热板会非常的热 xff0c 为避免主板过热 xff0c 通常在散热板上加装一个风扇增强散热 风扇需要软件指令进行驱动 xff0c 驱动风扇的指令为 sudo sh
  • Ubuntu 18.04安装gazebo9

    首先 xff0c 把gazebo的源添加到apt的source list中 sudo sh c echo deb http packages osrfoundation org gazebo ubuntu stable 96 lsb rel
  • 问题解决:/usr/bin/ld: cannot find -lbz2

    在项目编译过程中 xff0c 出现类似如下的错误 usr bin ld cannot find lbz2 经查询 xff0c 是找不到bz2的库文件 xff0c 用whereis命令查询 whereis libbz2 找不到对应的库文件 x
  • 常用Git命令

    通过git命令可以对项目代码库执行克隆 拉取 提交等操作 常用的git命令有如下 git clone 克隆代码库 xff0c 把远程代码库克隆到本机当前目录 xff0c 如 git clone https github com PX4 PX