git常见指令

爱吃猪头爱吃肉

git 基本命令

配置用户名、邮箱

1
2
3
4
5
6
7
8
# 配置全局git用户名
git config --global user.name "github用户名"
# 配置全局git邮箱
git config --global user.email "github邮箱地址"
# 配置局部git用户名
git config user.name "github用户名"
# 配置局部git邮箱
git config user.email "github邮箱地址"

git 常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
git init #初始化本地git仓库
git add . (-A) # 将工作区文件添加到暂存区
git commit -m "描述信息" # 将暂存区文件添加到版本库
git log #查看当前版本库版本
git diff # 默认比较的是工作区和暂存区
git diff --cached # 比较暂存区和版本库
git diff master # 比较工作区和版本库
git status # 查看当前本地库状态,查看是否有未提交文件
# 回退相关
git commit --amend # 撤销上一次提交 并讲暂存区文件重新提交
git checkout --<file> # 拉取暂存区文件 并将其替换成工作区文件
git reset HEAD --<file> # 拉取最近一次提交到版本库的文件到暂存区 改操作不影响工作区
git rm --<file> # 从暂存区中删除指定文件,注意:需要将工作区中对应的文件也删除掉
git reset --hard HEAD # 拉取版本库到暂存区 同时修改工作区与暂存区相同
git reflog # 查看分支的所有操作记录
git history # 查看历史记录

git 增加/删除文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 添加指定文件到暂存区
git add [file1] [file2]
# 添加指定目录到暂存区,包括子目录
git add [dir]
# 添加当前目录的所有文件到暂存区
git add .
# 添加每个变化前,都会要求确认
# 对于同一个文件的多处变化,可以实现分次提交
git add -p
# 删除工作区文件,并且将这次删除放入暂存区
git rm [file1] [file2]
# 停止追踪指定文件,但该文件会保留在工作区
git rm --cached [file]
# 改名文件,并且将这个改名放入暂存区
git mv [file-original] [file-renamed]

git 代码提交

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 提交暂存区到仓库区
git commit -m [message]
# 提交暂存区的指定文件到仓库区
git commit [file1] [file2] ... -m [message]
# 提交工作区自上次commit之后的变化,直接到仓库区
git commit -a
# 提交时显示所有diff信息
git commit -v
# 将add和commit合为一步
git commit -am 'message'
# 使用一次新的commit,替代上一次提交
# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
git commit --amend -m [message]
# 重做上一次commit,并包括指定文件的新变化
git commit --amend [file1] [file2] ...

git 分支管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
git branch (dev) # 查看/创建分支 
git branch -d dev # 删除dev分支
git checkout dev # 切换分支
git checkout -b dev # 切换并使用分支 (不存在则创建)

git merge dev # 在其他分支上合并dev分支 会将两个分支不同内容合并到一个分支 有枝杈
git rebase dev # 将两个分支合并成一个分支 没有枝杈

git log --oneline --graph --decorate --all # 查看提交信息

# 当前分支工作区修改后 没有提交 需要切换分支 此时需要将当前分支暂存
git statsh # 暂存当前工作区内容
git statsh list # 查看暂存的内容
git statsh pop # 弹出最新保存到工作区的内容
git statsh apply # 应用最新保存的内容,区域不删除对应内容
git statsh drop # 删除对应区域保存的内容

git show

  • git show -s –format=%H 获取commit
  • git show -s –format=%cn 获取提交用户名
  • git show -s –format=%ce 获取提交用户邮箱
  • git show -s –format=%cd 获取提交时间

git 标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 列出所有tag
git tag
# 新建一个tag在当前commit
git tag [tag]
# 新建一个tag在指定commit
git tag [tag] [commit]
# 删除本地tag
git tag -d [tag]
# 删除远程tag
git push origin :refs/tags/[tagName]
# 查看tag信息
git show [tag]
# 提交指定tag
git push [remote] [tag]
# 提交所有tag
git push [remote] --tags
# 新建一个分支,指向某个tag
git checkout -b [branch] [tag]

git 撤销操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 恢复暂存区的指定文件到工作区
$ git checkout [file]
# 恢复某个commit的指定文件到暂存区和工作区
$ git checkout [commit] [file]
# 恢复暂存区的所有文件到工作区
$ git checkout .
# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
$ git reset [file]
# 重置暂存区与工作区,与上一次commit保持一致
$ git reset --hard
# 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
$ git reset [commit]
# 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
$ git reset --hard [commit]
# 重置当前HEAD为指定commit,但保持暂存区和工作区不变
$ git reset --keep [commit]
# 新建一个commit,用来撤销指定commit
# 后者的所有变化都将被前者抵消,并且应用到当前分支
$ git revert [commit]
# 暂时将未提交的变化移除,稍后再移入
$ git stash
$ git stash pop

远程库操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 添加远程库
git remote add <库名> <库地址>

# 删除远程库
git remote remove <库名>

# 修改远程库名称
git remote rename <库名> <新库名>

# 查看远程库信息
git remote -v

# 克隆远程库
git clone <url>

# 下拉远程库
git fetch <url>

# 下拉并合并 (git fetch + git rebase)
git pull --rebase <远程库>

# 提交到远程库
git push <库名> <分支名>

# 发生冲突后
# 放弃合并
git rebase --abort

# 手动解决冲突
git rebase --continue

# 丢弃版本库中起冲突的文件
git rebase --skip

远程库常见操作

Git reset

  1. –hard HEAD^:重置位置的同时,清空工作目录的所有改动;
  2. –soft HEAD^:重置位置的同时,保留工作目录和暂存区的内容,并把重置 HEAD 的位置所导致的新的文件差异放进暂存区。
  3. –mixed HEAD^(默认):重置位置的同时,保留工作目录的内容,并清空暂存区。

Git rebase

主要是为了合并多个commit

git rebase -i 可以将多条commit进行合并

  • Pick:会在你的历史记录中保留该提交。
  • Reword:允许你修改提交信息,可能是修复一个错别字或添加其它注释。
  • Edit:允许你在重放分支的过程中对提交进行修改。
  • Squash:可以将多个提交合并为一个。

Git cherry-pick

可以理解为将指定分支复制到当前分支上
git cherry-pick 指定分支

  • 标题: git常见指令
  • 作者: 爱吃猪头爱吃肉
  • 创建于: 2023-04-20 07:46:07
  • 更新于: 2023-04-21 07:30:20
  • 链接: https://zsasjy.github.io/2023/04/20/git常见指令/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
推荐文章
前端工程化校验配置 前端工程化校验配置 Docker基本用法 Docker基本用法 webpack常用配置汇总 webpack常用配置汇总 Hello World Hello World 搭建react开发环境 搭建react开发环境 浏览器架构 浏览器架构
 评论