文章

git 常用命令速查

git 常用命令速查

以下是 Git 的常用操作总结,适合快速查阅和日常使用:

初始化与克隆仓库

  • 初始化本地仓库
    1
    
    git init
    
  • 克隆远程仓库
    1
    
    git clone <远程仓库URL>
    

配置用户信息

  • 设置全局用户名和邮箱
1
2
git config --global user.name "名字"
git config --global user.email "邮箱"
  • 查看当前配置
1
git config --list

添加与提交文件

  • 添加文件到暂存区
    1
    2
    
    git add <文件名>           # 添加指定文件
    git add .                 # 添加所有修改和新文件
    
  • 提交到本地仓库
1
git commit -m "提交描述"
  • 将添加和提交合并为一步
1
git commit -am "提交描述"  # 仅对已跟踪文件生效

分支管理

  • 查看分支
1
2
git branch               # 查看本地分支
git branch -a            # 查看所有分支(包括远程)
  • 创建/切换分支
1
2
3
git branch <分支名>       # 创建分支
git checkout <分支名>     # 切换分支
git checkout -b <分支名>  # 创建并切换到新分支
  • 合并分支
1
2
git checkout main        # 切换到主分支
git merge <分支名>        # 合并指定分支到当前分支
  • 删除分支
1
2
git branch -d <分支名>    # 删除本地分支(安全)
git branch -D <分支名>    # 强制删除未合并的分支

远程仓库操作

  • 关联远程仓库
1
git remote add origin <远程仓库URL>
  • 推送本地分支到远程
1
2
git push -u origin <分支名>   # 首次推送
git push                     # 后续推送
  • 拉取远程更新
1
git pull origin <分支名>    # 拉取并合并远程分支
  • 查看远程仓库信息
1
git remote -v

状态与日志

  • 查看当前状态
1
git status
  • 查看提交历史
1
2
git log                       # 详细日志
git log --oneline             # 简洁单行显示

撤销与回退

  • 撤销工作区修改
1
git checkout -- <文件名>        # 丢弃未暂存的修改
  • 撤销暂存区的文件
1
git reset HEAD <文件名>         # 将文件移出暂存区
  • 回退到某个提交
1
2
git reset --hard <commit-id>   # 彻底回退到指定提交
git reset --soft <commit-id>   # 保留修改并回退提交
  • 修改最后一次提交
1
git commit --amend             # 修改提交信息或内容

标签管理

  • 创建标签
1
2
git tag <标签名>                # 轻量标签
git tag -a <标签名> -m "描述"    # 含注解的标签
  • 推送标签到远程
1
git push origin --tags
  • 列出所有标签
1
git tag --list
  • 删除本地标签
1
git tag -d <标签名>
  • 删除远程标签
1
git push origin --delete <标签名>

高级操作

  • 储藏临时修改
1
2
git stash                   # 保存当前工作状态
git stash pop               # 恢复最近储藏的内容
  • 比较差异
1
2
git diff                    # 工作区与暂存区差异
git diff --staged           # 暂存区与最新提交差异
  • 子模块管理
1
git submodule add <仓库URL>  # 添加子模块
  • 变基(Rebase)
1
git rebase <分支名>          # 将当前分支的提交移动到另一分支顶部
  • 远程分支删除后,清除本地索引
1
git remote prune origin

仓库复制迁移

有时候需要迁移现有的代码仓库,如果重新创建新仓库,删除掉原来的 .git 目录再推送代码上去,原有的 commit 信息将全部丢失,使用下面这种方法就可以完整保留原有的 commit 信息。

  1. 进入本地仓库目录
1
cd /path/to/local/repo
  1. 查看当前远程地址
1
git remote -v
  1. 修改远程地址
1
git remote set-url origin git@ip:my_repo.git
  1. 强制推送所有分支和标签
1
2
git push --force --all origin
git push --force --tags origin
  1. 注意 请确保将要设置的 URL 所在的远程仓库为空,否则会被覆盖掉。
本文由作者按照 CC BY 4.0 进行授权