blog

git bundle

打包整个仓库 # 发送者使用仓库创建一个文件包 git bundle create somefile HEAD # 接收者使用 somefile 文件获取提交 git pull somefile 打包部分提交:假设 xxxx 是发送者和接收者共享的最近提交 # 发送

git cherry-pick 选择某次提交

# 选择某次提交应用到当前分支 git cherry-pick <commit-id> # 选择某次提交应用到当前分支,并保留原提交者信息 git cherry-pick -x <commit-id> 批量操作 # 应用 start-commit-id (不包含) 到 end-commit-id (包含)之间的提交到

git clean 清理工作目录

git clean 从工作目录移除未被跟踪的文件,直接删除,不能从回收站找到 -d 移除未跟踪的目录 -f 强制移除文件或目录,如果 clean.requireForce 设置为 true,git clean 只有添加 -f-n-i

git commit 提交更新

# 将提交信息与命令放在同一行 git commit -m "add README" # 自动把所有已经跟踪过的文件暂存起来一并提交, 跳过 git add 步骤 git commit -a -m "add README" # 在日志信息之后添加提交者的信息

git config 配置

配置 修改配置信息 查看配置信息 修改配置信息 /etc/gitconfig:包含系统上每一个用户及他们仓库的通用配置, 使用--system会从此文

git diff 版本比较

diff 插件 git diff diff 插件 可以使用 git difftool 命令来用 Araxis , emerge 或 vimdiff 等软件通过图形化的方式或其它格式输出方式输出 diff 分析结果 使用 git difftool --tool-help 命令查看系统支持哪些 git diff 插件 git

git grep

git log

语法 常用命令 引用日志 reflog 参考 语法 git log [<options>] [<revision range>] [[--] <path>…​] options 参数 含义 -L <start>,<end>:<file> 查看指定文件的开始行到结束行的提交历史 -L :<funcname>:<file> 查看指定文件

git move 移动文件

# git rm + git add git mv file_from file_to

git patch 补丁

普通补丁 正式补丁 git format-patch 参数 用于邮件发送 直接用于 git am 参考 普通补丁 # 发送者生成一个补丁 git diff xxx > my.patch # 接收者在其他地方使用这个补丁 git apply < my.patch 正式补丁 git format-patch