当前位置:   article > 正文

git使用常用操作(Linux版)_linux查看git版本

linux查看git版本


文章记录在使用git过程中常用的一些命令,好记性不如烂笔头。

1. git配置

1.1 查看git版本信息

linux系统一般是默认安装了git的,可以使用以下命令查看git支持的命令和git的版本信息。

git --help
git --version
  • 1
  • 2

1.2 配置账号信息

git config 配置相关
当前用户配置的信息只对当前用户有效,对root用户和其他用户都是不可见的。
配置用户名和邮箱:

git config --global user.name 用户名
git config --global user.email 邮箱
--global的含义是全局配置,与全局配置相对应的是只对当前仓库进行配置
  • 1
  • 2
  • 3

在不配置用户名和邮箱的情况下,可以clone代码和创建分支,然而不能执行merge、pull、push、commit等操作,因为git在管理这些操作时必须知道用户名和邮箱。不过git add在不配置用户名和邮箱的情况下可以执行,因为git add只是添加到暂存区
查看当前配置列表:

git config -l
  • 1

值得注意的是,git config 可以在仓库目录执行,也可以在普通文件目录执行。在普通目录执行,看到的是–global配置,也就是全局配置;在仓库目录执行,看到的是仓库对应的配置。如下图所示,可以看到配置信息中包含origin的地址,以及各个本地分支对应的远程分支。如果配置加了–global,那么相应的配置会保存在~/.gitconfig里面。
在这里插入图片描述
git管理代码可以通过两种方式,一种是HTTPS,另外一种是SSH协议。通过HTTPS往往需要输入用户名和密码,而通过SSH协议需要在使用之前配置秘钥。SSH协议使用rsa算法,所以会生成公钥和私钥,本地生成密钥后需要把公钥复制到代码托管网站上。秘钥的生成方式如下:
ssh-keygen -t rsa -C ‘登录邮箱’
在生成秘钥的过程中可以选择保存秘钥的目录,生成密钥后,会提示密钥存储的位置。

1.3 配置vim为默认编辑器

git config --global core.editor vim
  • 1

2. git分支管理

2.1 拉取代码与分支操作

如果直接使用仓库的地址,那么克隆下来的将是master分支。在github等网站上通过切换分支,可以直接获取到分支的地址,因此可以使用分支地址直接克隆。

git clone 主仓库地址
git clone 分支地址
  • 1
  • 2

git checkout -b 新建分支名可以用于新建分支,在没有指定源分支名时,默认当前分支是源分支。

git checkout -b dev #以当前分支为模板创建新分支
git checkout -b dev origin/dev #指定远程分支为末班创建新分支
git checkout -b dev 本地已有的分支名 #以指定的本地分支为模板创建新分支
  • 1
  • 2
  • 3

查看所有分支

git branch -a
  • 1

在代码没有冲突的情况下直接合并

git merge 分支名 #将指定分支合并到当前分支
  • 1

在有冲突的情况下,冲突会写入相应的文件,例如Readme有冲突,那么冲突的内容会在Readme文件中体现,打开这个文件手动修改即可。

2.2 暂存代码

当做了一些修改,不想直接提交,而又需要切换到其它分支的时候需要暂存代码。
暂存到栈

git stash
  • 1

从栈中取出

git stash pop
  • 1

3. git查看提交信息

  • 查看某文件对应的commit信息,可以看到每行代码对应的commit信息
git blame arch/arm/Kconfig
  • 1

在这里插入图片描述

  • 查看某个模块更新情况,使用--oneline只显示补丁commit号和名称,然后按“/”输入需要搜索的模块名称,即可进行搜索。
git log --oneline
  • 1

在这里插入图片描述

  • 查看某个提交来自哪个分支,也可用git log --graph
git branch --contains fd574a2f841c
  • 1
  • 查看某一文件中某个函数或者变量的跟新记录,类似的可使用"/"进行搜索
git log -p arch/xtensa/mm/fault.c
  • 1

4. 常见issue

4.1 git头指针处于分离状态

git头指针处于分离状态是指HEAD指针没有指向分支而是指向某一次提交,这时如果进行commit,相应的内容不会提交到任何分支,而且未来可能会被清除。有哪些情况会造成头指针处于分离状态呢?

  1. git checkout CommitID,即使用git checkout直接切换到某一次提交。
  2. 从远程克隆了master分支,直接使用git checkout切换到其它分支也会造成头指针分离。

要保留头指针分离状态下提交的内容,可以新建一个临时分支,将这个分支合并到想要保存该提交的分支,然后删除临时分支即可。

git branch temp CommitID #为CommitID对应的提交创建临时分支
git merge temp
git branch -d temp #当前分支无法被删除
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/454535
推荐阅读
相关标签
  

闽ICP备14008679号