Git常用命令

本文详细介绍了Git的各种基础操作,包括生成SSH密钥、拉取和推送远程分支、打标签、删除分支和标签等。此外,还讲解了如何进行更复杂的组合操作,如迁移Git仓库、清理无效的远程追踪分支等。这些内容对于日常的Git使用和版本控制管理非常实用。
摘要由CSDN通过智能技术生成

一、基础操作

1、生成密钥

ssh-keygen -t rsa -b 2048 -C "邮箱"
选项:

  • -t:type的缩写,即指定密钥的类型,密钥的类型有两种,一种是rsa,一种是dsa。默认使用rsa密钥,所以不加-t rsa也行。
  • -b:bit的缩写,指定密钥长度,对于rsa密钥,最小要求768位,默认是2048位。dsa密钥必须恰好是1024位(FIPS 186-2 标准的要求)。
  • -C:comment的缩写,表示提供一个注释,用于识别这个密钥。可以省略。引号里的内容为注释的内容,所以引号里面不一定得填邮箱,可以输入任何内容。

        若过程中没有指定密钥文件名的话,默认生成的私钥文件名为:id_rsa,公钥文件名为:id_rsa.pub。如果要从GitHub或者GitLab上克隆出项目,则需要在它们各自设置里添加SSH Keys,注: 要添加公钥文件的内容。

2、仓库

(1)拉取远程仓库

git clone 仓库地址 本地目录名

(2)查看远程仓库与本地仓库的关系

git remote show origin

(3)删除本地指定的远程仓库地址

git remote remove 远程仓库地址(如:origin)

(4)添加本地指定的远程仓库地址

git remote add origin 远程仓库地址(如:git@192.168.3.251:jaron/test.git)

3、分支

(1)查看分支列表

git branch -a
选项:

  • -a:all的缩写,同时列出本地分支和远程分支。若不加该选项,则只列出本地分支。

(2)修改分支名称

git branch -m 旧分支名 新分支名

(3)删除本地分支

git branch -d 本地分支名git branch -D 本地分支名
选项:

  • -d:delete的缩写,会在删除前检查merge状态(其与上游分支或者与head)。
  • -D:是--delete --force的简写,它会直接删除。

(4)删除远程分支

git push origin --delete 远程分支名

(5)推送远程分支

git push origin 远程分支名git push -f origin 远程分支名
选项:

  • -f:是--force的简写,表示强制覆盖远程分支。

(6)拉取远程分支并创建本地分支

git checkout -b 本地分支名 origin/远程分支名

(7)清理本地无效的远程追踪分支

git remote prune origin

4、标签

(1)获取指定提交上的标签

git tag --contains 哈希值

(2)打标签

git tag 标签名git tag -a 标签名 -m "注释"

(3)推送标签

git push origin 标签名

(4)删除本地标签

git tag -d 标签名

(5)删除本地所有标签

git tag -l | xargs git tag -d

(6)清理本地无效的远程追踪标签

git fetch --prune --prune-tags origin 也可简写为:

  • git fetch --prune --prune-tags
  • git fetch -p -P origin
  • git fetch -p -P

(7)拉取远程所有标签

git fetch --tags

(8)删除远程标签

git push origin :refs/tags/标签名

5、日志

(1)查看提交日志

git log:查看完整提交日志列表。
选项:

  • --oneline:将每个提交显示在一行内。

  • --format="%H %s":指定输出格式。

    • %H表示显示提交完整哈希值,默认%h表示简短的提交哈希值
    • %an:作者的名字
    • %ae:作者的电子邮件地址
    • %s:提交信息主题
    • %b:提交信息的主体(整个信息)
    • %ct:提交的时间戳(秒级),例如:1702042278
    • %ci:以 ISO 8601 格式显示提交日期和时间
    • %cI:显示提交日期和时间的 ISO 8601 格式,但忽略时区信息
    • %cr:显示提交日期和时间的相对格式(例如 “2 hours ago”)
    • %cd:以 YYYY-MM-DD 格式显示提交日期
    • %cD:以 MM/DD/YYYY 格式显示提交日期
  • --reverse:指定正序显示提交日志,默认是倒序。

(2)统计当前分支提交次数

git log --oneline | wc -l
windows平台下没有wc指令,需要使用:git log --oneline | find /v /c ""

(3)根据提交哈希值查看是第几次提交

git log --format="%H" --reverse | grep -n 哈希值 | cut -d':' -f1

6、子模块

(1)在仓库中首次拉取子模块

git submodule update --recursive --init

(2)在仓库中更新子模块

git submodule update --recursive --remote

7、配置

(1)设置CRLF和LF

  • 提交时转换为LF,检出时转换为CRLF
    git config --global core.autocrlf true
  • 提交时转换为LF,检出时不转换
    git config --global core.autocrlf input
  • 提交检出均不转换
    git config --global core.autocrlf false
  • 拒绝提交包含混合换行符的文件
    git config --global core.safecrlf true
  • 允许提交包含混合换行符的文件
    git config --global core.safecrlf false
  • 提交包含混合换行符的文件时给出警告
    git config --global core.safecrlf warn

二、组合操作

1、迁移Git仓库

# 删除原来的远程地址
git remote remove origin
# 新指定新的远程地址
git remote add origin git@192.168.3.251:jaron/test.git
# 上传所有本地分支至新的远程地址
git push -u origin --all
# 上传所有tag至新的远程地址
git push -u origin --tags
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值