Git 常用命令及错误

杨镇源 于 2025-07-07 发布 浏览量

文件目录操作命令

# 创建一个目录名为[dirname]的空目录
$ mkdir [dirname]

# 显示当前目录路径
$ pwd

# 查看[filename]文件内容
$ cat [filename]

# 删除名为[filename]的文件
$ git rm [filename]

Git 初始化操作

# 初始化 Git 仓库
$ git init

# 添加远程仓库
$ git remote add origin [url]

# 克隆远程仓库
$ git clone git@[url]/test.git

# 添加文件到暂存区
$ git add [filename]

# 提交文件(附带注释)
$ git commit -m "[message]"

Git 克隆分支

# 克隆仓库(默认分支)
$ git clone [repo].git

# 克隆到指定目录
$ git clone [repo].git [target-dir]

# 克隆并切换分支
$ git clone -b [branch-name] [repo].git

# 查看所有分支(包括远程)
$ git branch -a

# 创建并跟踪远程分支
$ git checkout -t origin/[branch]

# 指定本地分支名(这个名字可以和远程分支名一样,也可以不一样)
# 创建一个本地分支 [branch],基于 origin/[branch] 的当前状态
# 但不会自动设置跟踪关系(默认情况下不会自动关联远程分支,需要后续用 git branch --set-upstream-to=origin/[branch] [branch] 设置)
$ git checkout -b [branch] origin/[branch]

查看命令

# 查看仓库状态
$ git status

# 查看文件改动
$ git diff [file]

# 查看提交历史
$ git log

# 查看历史版本记录(命令记录)
$ git reflog

# 简洁日志格式
$ git log --pretty=oneline

版本回退


# 回退到上一个版本
$ git reset --hard HEAD^

# 回退到第 3 个之前的版本
$ git reset --hard HEAD~3

# 回退到指定版本
$ git reset --hard [commit-id]

撤销修改

# 撤销未提交的修改
$ git checkout [file-name]

# 还原最近一次提交
$ git revert HEAD

# 还原指定版本
$ git revert [commit-id]

分支管理

# 查看本地分支
$ git branch

# 查看所有远程分支
$ git branch -a

# 创建新分支
$ git branch [name]

# 删除本地 dev 分支
$ git branch -d dev

# 删除远程 dev 分支
$ git push origin --delete dev

# 重命名分支
$ git branch -m dev develop

# 创建并切换分支
$ git checkout -b dev

# 合并分支
$ git merge dev

# 推送本地新建分支
$ git push origin yzy-dev

# 撤销所有修改
$ git checkout -- [file]

# 切换到 main 分支
$ git checkout main

# 推送并关联远程分支
$ git push --set-upstream origin dev


Tag 相关操作

# 查看所有 tag
$ git tag

# 创建轻量标签
$ git tag [name]

# 删除本地 tag
$ git tag -d [name]

# 删除远程 tag
$ git push origin --delete tag [name]

# 查看 tag 信息
$ git show [name]

# 推送 tag 到远程
$ git push origin [name]


隐藏文件操作(git stash)

# 暂存当前修改
$ git stash

# 查看 stash 列表
$ git stash list

# 恢复 stash(保留记录)
$ git stash apply

# 删除某个 stash
$ git stash drop

# 恢复并删除 stash
$ git stash pop

查看远程库信息(git remote)

# 查看远程库
$ git remote

# 查看远程详细信息
$ git remote -v

# 添加远程库
$ git remote add [name] [url]

# 重命名远程库
$ git remote rename [oldname] [newname]

# 删除远程库
$ git remote rm [name]

将远程分支拉取到本地

# 方法一:新建本地分支并跟踪远程分支
$ git checkout -b [local] origin/[remote]
# 手动设置上游分支
$ git branch --set-upstream-to=origin/[remote] [local]
# 方法二:fetch 并新建本地分支
$ git fetch origin [remote]:[local]

Git Pull 操作

# 拉取远程分支 origin-xxx 到本地分支 main
$ git pull origin origin-xxx:main

# 当前分支默认合并远程同名分支
$ git pull

Git 设置

# 设置大小写敏感
$ git config core.ignorecase false

# 忽略权限变动
$ git config core.filemode false

# 设置 push 策略为 simple(推荐)
$ git config --global push.default simple

# 设置 push 策略为 matching(旧版)
$ git config --global push.default matching

创建追踪分支

git branch --track main origin/main

Git 命令提示语言切换为英文

$ echo "alias git='LANG=en_GB git'" >> ~/.bashrc
$ source ~/.bashrc

Git 删除未添加到版本中的文件/文件夹

# 删除未追踪的文件
$ git clean -f

# 删除未追踪的文件和目录
$ git clean -fd

# 包括 .gitignore 中忽略的文件
$ git clean -xfd

# 预览将删除哪些文件
$ git clean -nfd

# 预览将删除哪些文件(包括忽略)
$ git clean -nxfd

常见 Git 错误与解决办法

  1. 本地分支未关联远程分支

    解决:git branch –set-upstream-to=origin/[branch] [branch]

  2. 推送失败 (non-fast-forward)

    解决:先 git pull,合并并解决冲突再 push

  3. 合并冲突

    解决:手动解决冲突,commit 后 push

  4. Not on a branch

    解决:git checkout main

  5. 提示 behind ‘origin/main’ by 1 commit

    解决:git pull

  6. push.default 警告

    解决:设置 simple 或 matching 策略

  7. pull 提示缺少分支

    解决:修改 .git/config 添加远程追踪配置

  8. 权限被拒绝(Permission denied)

    解决:检查使用的 SSH key 和 GitHub 用户是否一致

  9. SSH 无效

    解决:必须在 root 权限下配置 SSH key