分类
技术

Git常用命令

Git基本概念

Working Directory 工作区 Disk:你正在编辑的文件

Index 暂存区 Temp:用 git add 放入的、即将提交的改动

Repository 本地仓库 Local:已经提交到的历史记录

Remote 远程仓库 Remote:云端的代码库

HEAD:当前检出的分支的“游标”

Git配置

  • 查看配置:git config --list
  • 设置名字:git config --global user.name "coni"
  • 设置邮箱:git config --global user.email "cn@coni.top"
  • 查看git版本号:git version

在工作目录初始化git

  • 在当前目录初始化git:git init
  • 查看git状态:git status

工作区->暂存区

  • 添加当前目录全部文件到暂存区(新文件+修改):git add .
  • (新文件+修改+删除):git add -u
  • 添加单个文件: git add <文件名>
  • 撤销所有已暂存 的文件:git reset

暂存区->本地仓库

  • 将暂时保持的提交固定成一个版本:git commit -m "提交说明"git commit)会打开vim来填写提交说明

查看日志

  • 查看提交日志:git log
  • 查看简短提交日志:git log --oneline
  • git log 后,Git 会进入分页器模式:q退出 Space向下翻一页 Enter向下翻一行 b向上翻一页 y向上翻一行 g跳到第一行 G跳到最后一行
  • 查看HEAD指针的移动记录:git reflog

回退版本

  • 显示提交id:git log --oneline
  • 退回到<id>的版本:git reset --hard <id> 注意--hard硬重置版本即覆盖所有变更,包括HEAD、暂存区、工作区,也会清空后面的版本
  • --hard 会让暂存区和工作区都回到这个 commit 的状态
  • --soft 会让HEAD指针回退,但是保留工作区和暂存区的修改
  • --mixed 会让工作区保留修改,但清空暂存区
  • 退回到上一个提交:git reset --hard HEAD
  • 恢复单个文件到上个提交状态:git checkout HEAD -- <文件名>
  • 把工作区所有文件恢复到最近一次 commit 的状态:git restore .
  • 创建一个新的提交,用来抵消之前的修改(这样不会改写历史):git revert <commit>
  • 创建一个新提交,撤销最近一次提交:git revert HEAD

分支:复制当前版本

  • 创建分支:git branch <分支名字>
  • 创建并切换到该分支:git checkout -b <分支名字>
  • 切换分支:git checkout <分支名字>
  • 查看本地和远程所有分支:git branch -a
  • 删除分支:git branch -D <分支名字>
  • 重命名分支:git branch -m <分支名字>
  • 合并<分支>到当前分支上:git merge <分支名字>git addgit commit来解决冲突)
  • 将当前分支的提交,重新接到 <分支名> 的最新提交后面:git rebase <分支名>

比对

  • 比较工作区和暂存区文件差异:git diff

下载

  • 下载到本地:git clong <仓库地址>

查看远程仓库

  • 查看远程仓库:git remote -v

拉取

  • git pull <远程仓库名> <分支名>
  • 使用当前分支已设置的上游:git pull
  • 从远程origin仓库拉取main分支代码,并自动合并到本地当前分支:git pull origin main
  • origin 是 Git 给克隆下来的远程仓库起的默认名字

上传

  • git push <远程仓库名> <分支名>
  • 上传到当前分支已设置的上游:git push
  • 将本地main分支推送到远程仓库:git push origin main
设置git忽略文件

在仓库根目录创建 .gitignore 文件

# ================================
# C++ 项目通用忽略
# ================================

# 编译产物
*.o
*.obj
*.lo
*.slo
*.ko
*.dll
*.so
*.dylib
*.exe
*.out
*.app

# 预编译头文件
*.gch
*.pch

# 库文件
*.lib
*.a
*.la

# 调试/日志文件
*.pdb
*.idb
*.ilk
*.log
*.tmp
*.swp

# CMake 生成目录
/CMakeFiles/
/CMakeCache.txt
/cmake_install.cmake
/Makefile
/build/
/bin/
/lib/

# Visual Studio
.vs/
*.vcxproj.user
*.VC.db
*.VC.VC.opendb
Debug/
Release/
x64/
ipch/

# Visual Studio Code
.vscode/

# Qt Creator
*.pro.user
*.qmake.stash

# CLion / JetBrains
.idea/

# 操作系统垃圾文件
.DS_Store
Thumbs.db
  • 查看被忽略的文件列表:git status --ignored
  • 检测单个文件是否忽略:git check-ignore -v 文件路径

完整工作流程:https://www.bilibili.com/video/BV19e4y1q7JJ

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在此处输入验证码 : *

Reload Image