Git教程
01、Git 基础教程
02、Git 安装 – Linux
03、Git 安装 – Window
04、Git 安装 – Mac OS
05、Git 配置 – git config
06、Git 工作流程
07、Git 工作区、暂存区和版本库
08、Git 创建仓库 – git init
09、Git 添加文件到暂存区- git add
10、Git 提交文件到版本库 – git commit
11、Git 克隆仓库 – git clone
12、Git 删除文件 – git rm
13、Git 重命名文件 – git mv
14、Git 取消已缓存 – git reset HEAD
15、Git 分支管理 – git branch
16、Git 查看提交历史 – git log
17、Git 标签 – git tag
18、Git 远程仓库 ( Github )
19、Git 远程服务搭建
20、Git 快速参考手册
21、Git 基本操作
22、Git Flow
本文档使用 MrDoc 发布
-
+
首页
20、Git 快速参考手册
我们制作了一份 Git 快速参考手册供随时预览 Gitcheat sheet 让你不用再去记所有的 git 命令 ### **配置** 列出当前配置 `git config --list` 列出 repository 配置 `git config --local --list` 列出全局配置 `git config --global --list` 列出系统配置 `git config --system --list` 设置用户名 `git config --global user.name “[firstname lastname]”` 设置用户邮箱 `git config --global user.email “[valid-email]”` 设置 git 命令输出为彩色 `git config --global color.ui auto` 设置 git 使用的文本编辑器 `git config --global core.editor vi` ### **配置文件** Repository 配置对应的配置文件路径[–local] `<repo>/.git/config` 用户全局配置对应的配置文件路径 [–global] `~/.gitconfig` 系统配置对应的配置文件路径 [–local] `/etc/gitconfig` ### **创建** 复制一个已创建的仓库 ```python # 通过 SSH $ git clone ssh://user@domain.com/repo.git #通过 HTTP $ git clone http://domain.com/user/repo.git ``` 创建一个新的本地仓库 `git init` ### **本地修改** 显示工作路径下已修改的文件 `git status` 显示与上次提交版本文件的不同 `git diff` 把当前所有修改添加到下次提交中 `git add .` 把对某个文件的修改添加到下次提交中 `git add -p <file>` 提交本地的所有修改 `git commit -a` 提交之前已标记的变化 `git commit` 附加消息提交 `git commit -m 'message here'` 提交,并将提交时间设置为之前的某个日期 `git commit --date="date --date='n day ago'" -am "Commit Message"` ### **修改上次提交** **请勿修改已发布的提交记录** `git commit --amend` 修改上次提交的 `committer date` `GIT_COMMITTER_DATE="date" git commit --amend` 修改上次提交的 author date `git commit --amend --date="date"` 把当前分支中未提交的修改移动到其他分支 ```python git stash git checkout branch2 git stash pop ``` 将 stashed changes 应用到当前分支 `git stash apply` 删除最新一次的 stashed changes `git stash drop` ### **搜索** 从当前目录的所有文件中查找文本内容 `git grep "Hello"` 在某一版本中搜索文本 `git grep "Hello" v2.5` ### **提交历史** 从最新提交开始,显示所有的提交记录 ( 显示 hash, 作者信息,提交的标题和时间 ) `git log` 显示所有提交 ( 仅显示提交的 hash 和 message ) `git log --oneline` 显示某个用户的所有提交 `git log --author="username"` 显示某个文件的所有修改 `git log -p <file>` 仅显示远端 `<remote/master>` 分支与远端 `<origin/master>` 分支提交记录的差集 `git log --oneline <origin/master>..<remote/master> --left-right` 谁,在什么时间,修改了文件的什么内容 `git blame <file>` 显示 reflog `git reflog show ` 删除 reflog `git reflog delete` ### **分支与标签** 列出所有的分支 `git branch` 列出所有的远端分支 `git branch -r` 切换分支 `git checkout <branch>` 创建并切换到新分支 `git checkout -b <branch>` 基于当前分支创建新分支 `git branch <new-branch>` 基于远程分支创建新的可追溯的分支 `git branch --track <new-branch> <remote-branch>` 删除本地分支 `git branch -d <branch>` ### **强制删除一个本地分支** 将会丢失未合并的修改 `git branch -D <branch>` 给当前版本打标签 `git tag <tag-name>` 给当前版本打标签并附加消息 `git tag -a <tag-name>` ### **更新与发布** 列出当前配置的远程端 `git remote -v` 显示远程端的信息 `git remote show <remote>` 添加新的远程端 `git remote add <remote> <url>` 下载远程端版本,但不合并到HEAD中 `git fetch <remote>` 下载远程端版本,并自动与HEAD版本合并 `git remote pull <remote> <url>` 将远程端版本合并到本地版本中 `git pull origin master` 以rebase方式将远端分支与本地合并 `git pull --rebase <remote> <branch>` 将本地版本发布到远程端 `git push remote <remote> <branch>` 删除远程端分支 ```python $ git push <remote> :<branch> (since Git v1.5.0) or git push <remote> --delete <branch> (since Git v1.7.0) ``` 发布标签: `git push --tags` 合并与重置( Rebase ) 将分支合并到当前 HEAD 中 `git merge <branch>` ### **将当前 HEAD 版本重置到分支中** 请勿重置已发布的提交! `git rebase <branch>` 退出重置: `git rebase --abort` 解决冲突后继续重置: `git rebase --continue` 使用配置好的merge tool 解决冲突: `git mergetool` 在编辑器中手动解决冲突后,标记文件为已解决冲突: `git add <resolved-file>` `git rm <resolved-file>` 合并提交 `git rebase -i <commit-just-before-first>` 把上面的内容替换为下面的内容: 原内容 ```python pick <commit_id> pick <commit_id2> pick <commit_id3> ``` 替换为 ```python pick <commit_id> squash <commit_id2> squash <commit_id3> ``` ### **撤销** 放弃工作目录下的所有修改: `git reset --hard HEAD` 移除缓存区的所有文件(i.e. 撤销上次git add): `git reset HEAD` 放弃某个文件的所有本地修改: `git checkout HEAD <file>` 重置一个提交(通过创建一个截然不同的新提交) `git revert <commit>` 将 HEAD 重置到指定的版本,并抛弃该版本之后的所有修改: `git reset --hard <commit>` 用远端分支强制覆盖本地分支 `git reset --hard <remote/branch> e.g., upstream/master, origin/my-feature` 将 HEAD 重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改 `git reset <commit>` 将HEAD重置到上一次提交的版本,并保留未提交的本地修改 `git reset --keep <commit>` 删除添加.gitignore文件前错误提交的文件 ```python $ git rm -r --cached . $ git add . $ git commit -m "remove xyz file" ```
李智
2025年3月17日 13:26
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码