blog/git常用命令.md

128 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: git常用命令
date: 2021-08-12 17:22:28
tags: git
---
+++
## 1. git基本配置
### 1.1 配置邮箱和用户名
```
# 这里的“huoxue1" 可以替换成自己的用户名
git config --global user.name "huoxue1"
# 这里的邮箱 123456@163.com 替换成自己的邮箱
git config --global user.email "123456@163.com"
```
### 1.2 生成ssh密钥
```
# 这里的邮箱 123456@163.com 替换成自己的邮箱
ssh-keygen -t rsa -C "123456@163.com"
```
默认密钥存储位置为 “C:\\\Users\你的用户名\.ssh\”
### 1.3 配置到github
将id_rsa.pub的内容复制下来然后在github的setting里面配置
## 2. 基本使用
### 2.1.初始化项目
```apl
git init #初始化项目git配置
git remote add origin git@github.com:huoxue1/LeafBot.git # 关联远程仓库将远程仓库命名为origin
```
```apl
# 也可以直接clone远程仓库
git clone git@github.com:huoxue1/leafBot.git
```
### 2.2. 提交本地更改
```apl
git add . # .代表提交所有修改的文件,可以替换成对应的文件或者通配符
git commit -m 第一次提交” # m参数表示对这次提交的描述
git push -u origin master # 表示将本地当前分支内容提交的远程的master分支第一次使用之后以后可以直接git push
```
### 2.3. 分支管理
+ 一般项目会将master或者main作为主要分支
+ 然后开发者会在dev分支进行开发当需要发布版本时合并到主分支发布版本
+ 当线上版本出现bug需要修复时会创建一个fix分支进行修复修复完后将其合并到主分支然后删除fix分支
```apl
git branch # 查看本地所有分支
git branch -a # 查看所有分支,包括远程分支
git checkout dev # 创建一个dev分支
git checkout -b dev # 创建一个dev分支并切换到该分支
git branch set-upstream dev origin/dev # 把本地dev分支各远程dev分支进行关联
git merge --no-ff dev # 将dev分支合并到当前分支使用--no-ff参数后会执行正常合并在当前分支上生成一个新节点
```
### 2.4. tag管理
+ git作为版本管理可以在特定时刻为其打上标签
+ Git 支持两种标签轻量标签lightweight与附注标签annotated
轻量标签很像一个不会改变的分支——它只是某个特定提交的引用。
而附注标签是存储在 Git 数据库中的一个完整对象, 它们是可以被校验的,其中包含打标签者的名字、电子邮件地址、日期时间, 此外还有一个标签信息,并且可以使用 GNU Privacy Guard GPG签名并验证。 通常会建议创建附注标签,这样你可以拥有以上所有信息。但是如果你只是想用一个临时的标签, 或者因为某些原因不想要保存这些信息,那么也可以用轻量标签。
```apl
git tag -a v1.0 -m "我的第一个标签"
# -a表示为附注标签-m表示为其加上描述
git tag v1.1
# 默认为轻量标签
git tag show v1.0 #使用git tag show可以显示标签的信息
git push origin v1.0 # 将本地标签提交到远程成为共享标签
git tag -d <tagname> # 删除本地标签
git push origin --delete <tagname> # 删除远程标签
git checkout v1.0 # checkout命令可以使当前文件指向标签位置
```