git常用指令

1. 仓库操作

初始化仓库

csharp 复制代码
git init

在当前目录初始化一个新的Git仓库

克隆远程仓库

bash 复制代码
git clone <仓库URL> [目录名]
  • git clone https://github.com/user/repo.git 克隆仓库到当前目录
  • git clone https://github.com/user/repo.git myproject 克隆仓库到myproject目录

2. 配置相关

查看配置

lua 复制代码
git config --list

设置用户信息

arduino 复制代码
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

设置默认编辑器

arduino 复制代码
git config --global core.editor "vim"

3. 文件状态与提交

查看状态

lua 复制代码
git status
git status -s  # 简洁模式

添加文件到暂存区

csharp 复制代码
git add <文件名>
git add .      # 添加所有修改
git add -A     # 添加所有修改和删除
git add -p     # 交互式添加

提交更改

sql 复制代码
git commit -m "提交信息"
git commit -am "提交信息"  # 添加并提交所有已跟踪文件的修改
git commit --amend         # 修改最后一次提交

4. 分支管理

查看分支

bash 复制代码
git branch      # 查看本地分支
git branch -a   # 查看所有分支(本地+远程)
git branch -v   # 查看分支最后提交

创建分支

xml 复制代码
git branch <分支名>
git checkout -b <分支名>  # 创建并切换到新分支

切换分支

csharp 复制代码
git checkout <分支名>
git switch <分支名>       # Git 2.23+推荐方式

合并分支

sql 复制代码
git merge <分支名>
git merge --no-ff <分支名>  # 禁用快进合并

删除分支

bash 复制代码
git branch -d <分支名>    # 删除已合并的分支
git branch -D <分支名>    # 强制删除未合并的分支

5. 远程操作

查看远程仓库

复制代码
git remote -v

添加远程仓库

bash

复制

下载

xml 复制代码
git remote add <远程名> <仓库URL>

获取远程更新

bash

复制

下载

sql 复制代码
git fetch <远程名>
git fetch --prune  # 删除本地不存在的远程分支

拉取远程分支

bash

复制

下载

xml 复制代码
git pull <远程名> <分支名>
git pull --rebase  # 使用rebase方式拉取

推送本地分支

bash

复制

下载

perl 复制代码
git push <远程名> <分支名>
git push -u <远程名> <分支名>  # 设置上游分支
git push --force  # 强制推送(慎用)

6. 查看历史

查看提交历史

bash

复制

下载

perl 复制代码
git log
git log -p        # 显示差异
git log --stat    # 显示简略统计
git log --graph   # 图形化显示
git log --oneline # 单行显示
git log -n 5      # 显示最近5条
git log --since="2023-01-01"
git log --author="name"
git log --grep="关键字"

查看文件修改

bash

复制

下载

bash 复制代码
git diff                   # 工作区与暂存区差异
git diff --cached          # 暂存区与最新提交差异
git diff HEAD              # 工作区与最新提交差异
git diff <分支1> <分支2>   # 两个分支差异

7. 撤销操作

撤销工作区修改

bash

复制

下载

bash 复制代码
git checkout -- <文件名>   # 撤销单个文件修改
git restore <文件名>       # Git 2.23+推荐方式

撤销暂存区修改

bash

复制

下载

perl 复制代码
git reset HEAD <文件名>
git restore --staged <文件名>  # Git 2.23+推荐方式

回退提交

bash

复制

下载

perl 复制代码
git reset --soft HEAD~1   # 撤销提交但保留修改在暂存区
git reset --mixed HEAD~1  # 撤销提交和暂存(默认)
git reset --hard HEAD~1   # 彻底丢弃提交和修改

恢复被删除的文件

bash

复制

下载

xml 复制代码
git checkout <提交哈希> -- <文件名>

8. 标签管理

创建标签

bash

复制

下载

bash 复制代码
git tag <标签名>              # 轻量标签
git tag -a <标签名> -m "描述" # 附注标签
git tag -a v1.0 <提交哈希>    # 给特定提交打标签

查看标签

bash

复制

下载

sql 复制代码
git tag
git show <标签名>

推送标签

bash

复制

下载

perl 复制代码
git push origin <标签名>
git push origin --tags  # 推送所有标签

删除标签

bash

复制

下载

ruby 复制代码
git tag -d <标签名>             # 删除本地标签
git push origin :refs/tags/<标签名>  # 删除远程标签

9. 高级操作

储藏更改

bash

复制

下载

perl 复制代码
git stash                  # 储藏当前修改
git stash save "描述"      # 带描述的储藏
git stash list             # 查看储藏列表
git stash apply stash@{n}  # 应用指定储藏
git stash pop              # 应用并删除最新储藏
git stash drop stash@{n}   # 删除指定储藏
git stash clear            # 清除所有储藏

变基操作

bash

复制

下载

bash 复制代码
git rebase <分支名>        # 变基到指定分支
git rebase -i HEAD~3       # 交互式变基(修改最近3次提交)

子模块

bash

复制

下载

sql 复制代码
git submodule add <仓库URL> <路径>
git submodule update --init --recursive

清理无用文件

bash

复制

下载

bash 复制代码
git clean -n  # 查看将被删除的文件(预演)
git clean -f  # 删除未跟踪的文件
git clean -fd # 删除未跟踪的文件和目录

10. 帮助与调试

获取帮助

bash

复制

下载

bash 复制代码
git help <命令>
git <命令> --help

查看命令历史

bash

复制

下载

复制代码
git reflog

检查仓库完整性

bash

复制

下载

复制代码
git fsck

显示忽略规则

bash

复制

下载

sql 复制代码
git check-ignore -v <文件名>

这些命令涵盖了Git日常使用的大部分场景,建议根据实际需求逐步掌握。对于复杂操作,建议先在测试仓库中练习。

拉取别人的分支

基本操作步骤

  1. 获取最新远程分支信息

    sql 复制代码
    git fetch
  2. 查看同事的分支

    css 复制代码
    git branch -a

    这会列出所有分支,远程分支通常以remotes/origin/开头

  3. 基于同事的分支创建本地分支

    css 复制代码
    git checkout -b 你的分支名 origin/同事的分支名

    例如:

    bash 复制代码
    git checkout -b feature/my-work origin/feature/colleagues-work

更完整的流程

  1. 确保你的本地仓库是最新的

    复制代码
    git pull
  2. 创建并切换到新分支

    css 复制代码
    git checkout -b 你的分支名 origin/同事的分支名
  3. 设置上游分支(可选)

    ini 复制代码
    git branch --set-upstream-to=origin/你的分支名
  4. 开始开发

    • 进行代码修改
    • 添加更改到暂存区:git add .
    • 提交更改:git commit -m "描述你的修改"
    • 推送到远程:git push origin 你的分支名

注意事项

  1. 分支命名 :最好使用清晰的命名,如feature/yourname-descriptionfix/yourname-issue

  2. 沟通确认:在开始前确认:

    • 这是否是正确的源分支
    • 是否有特定的分支命名规范
    • 是否有其他流程需要遵循
  3. 不要直接修改同事的分支:确保你在自己的分支上工作,而不是直接在同事的分支上提交更改

  4. 定期同步:开发过程中定期从主分支合并最新更改到你的分支,避免后期大量冲突

关于短横线指令

常用 Git 短选项(-)及对应长选项(--)

1. 提交相关

短选项 长选项 用途 示例
-m --message 直接添加提交信息 git commit -m "修复bug"
-a --all 提交所有已修改/删除的文件(跳过 git add git commit -a -m "快速提交"
-v --verbose 提交时显示详细差异 git commit -v

2. 分支相关

短选项 长选项 用途 示例
-d --delete 删除分支 git branch -d feature/old
-D 强制删除未合并的分支 git branch -D feature/experimental
-b 创建并切换到新分支 git checkout -b new-feature
-r --remotes 查看远程分支 git branch -r
-a --all 查看所有分支(本地+远程) git branch -a

3. 拉取/推送相关

短选项 长选项 用途 示例
-f --force 强制推送(覆盖远程分支)⚠️慎用 git push -f origin main
-u --set-upstream 设置远程跟踪分支 git push -u origin feature
-p --prune 删除本地不存在的远程分支 git fetch -p

4. 日志/查看历史

短选项 长选项 用途 示例
-n --max-count 限制日志条目数 git log -n 5
-p --patch 显示提交的详细差异 git log -p
-g --grep 搜索提交信息 git log -g "fix bug"
-s --no-patch 不显示差异,仅摘要 git log -s
--oneline 单行简洁日志 git log --oneline

5. 合并/变基相关

短选项 长选项 用途 示例
--no-ff 禁用快进合并(保留合并提交) git merge --no-ff feature
--abort 取消合并/变基(冲突时) git merge --abort
--continue 解决冲突后继续合并/变基 git rebase --continue

6. 其他常用

短选项 长选项 用途 示例
-q --quiet 静默模式(减少输出) git pull -q
-v --verbose 详细模式(更多输出) git fetch -v
--dry-run 模拟执行(不真正修改) git merge --dry-run feature

总结

  • -m-d 等是 短选项--message--delete长选项,功能相同,但长选项更易读。

  • 常用场景

    • 提交-m(提交信息)、-a(跳过 git add
    • 分支-d(删除)、-b(创建并切换)
    • 推送-u(设置上游)、-f(强制推送,慎用)
    • 日志-p(查看差异)、--oneline(简洁日志)

如果是团队协作,建议多用 -- 长选项(如 git commit --message),这样代码审查时更清晰!

相关推荐
独立开阀者_FwtCoder9 分钟前
# 一天 Star 破万的开源项目「GitHub 热点速览」
前端·javascript·面试
天天扭码20 分钟前
前端进阶 | 面试必考—— JavaScript手写定时器
前端·javascript·面试
梦雨生生37 分钟前
拖拉拽效果加点击事件
前端·javascript·css
前端Hardy44 分钟前
第2课:变量与数据类型——JS的“记忆盒子”
前端·javascript
冴羽1 小时前
SvelteKit 最新中文文档教程(23)—— CLI 使用指南
前端·javascript·svelte
jstart千语1 小时前
【SpringBoot】HttpServletRequest获取使用及失效问题(包含@Async异步执行方案)
java·前端·spring boot·后端·spring
徐小夕1 小时前
花了2个月时间,写了一款3D可视化编辑器3D-Tony
前端·javascript·react.js
凕雨1 小时前
Cesium学习笔记——dem/tif地形的分块与加载
前端·javascript·笔记·学习·arcgis·vue
程序猿小玉兒1 小时前
若依框架免登陆、页面全屏显示、打开新标签页(看板大屏)
前端
小薛博客2 小时前
3、整合前端基础交互页面
java·前端·ai·交互