仓库
- git remote 列所有远程仓库
- git remote -v 可以看到远程仓库列表
- git remote show <name> 查看远程仓库详细信息
- git remote add <name> <url> 添加远程仓库
- git remote rename <old> <new> 改名远程仓库
- git remote remove <name> 删除远程仓库
- git fetch <remote> 同步远程仓库
分支
- git branch branchName 创建分支
- git checkout branchName 切换分支
- git checkout -b branchName 新建一个分支并同时切换到那个分支上
- git branch -d branchName 删除分支
- git branch 所有分支列表
- git branch --merged 查看哪些分支已经合并到当前分支
- git branch --no-merged 查看哪些分支没有经合并到当前分支
- git push origin serverfix:awesomebranch 将本地的 serverfix 分支推送到远程仓库上的 awesomebranch 分支
- git checkout -b serverfix origin/serverfix 根据远程分支origin/serverfix,在本次创建一个跟踪分支serverfix
- git branch -u origin/serverfix 修改正在跟踪的上游分支
- git branch -vv 将所有的本地分支列出来并且包含更多的信息,如每一个分支正在跟踪哪个远程分支与本地分支是否是领先、落后或是都有
- git push origin --delete serverfix 删除一个远程分支
- git reflog show 分支名 查看分支历史(可以看从哪个分支拉出来的)
git commit
- -a 自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
- -m 设置提交信息
- --amend 修补最后的提交时(与其说是修复旧提交,倒不如说是完全用一个新的提交替换旧的提交)
git log
- -2 只显示最近的两次提交
- -p 或者 --patch 按补丁格式显示每个提交引入的差异
- --stat 显示每次提交的文件修改统计信息
- --abbrev-commit 仅显示 SHA-1 校验和所有 40 个字符中的前几个字符
- --graph 在日志旁以 ASCII 图形显示分支与合并历史
- --pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline、short、full、fuller 和 format(用来定义自己的格式)
- --oneline (--pretty=oneline --abbrev-commit) 合用的简写
- --since 或 --after 仅显示指定时间之后的提交
- --until 或 --before 仅显示指定时间之前的提交
- --author 仅显示作者匹配指定字符串的提交
- --committer 仅显示提交者匹配指定字符串的提交
- --grep 仅显示提交说明中包含指定字符串的提交
- -S 仅显示添加或删除内容匹配指定字符串的提交
- --no-merges 过滤掉那些合并提交
- --merges 只显示合并提交
- --decorate 显示各个分支当前所指的commit点
- git log main..feature 列出所有已经存在于feature分支但还不存在于main分支的提交记录
- git log -- foo.py bar.py 列出所有与foo.py和bar.py文件有关的提交记录
git log --pretty="%h - %s" --author='Junio C Hamano' --since="2008-10-01" --before="2008-11-01" --no-merges
git reset
- --soft 回退到某个版本,只回退了commit的信息,索引(暂存区)和工作目录的内容是不变的
- --mixed 此为默认方式,回退仓库和暂存区,工作目录不变
- --hard 仓库、暂存区、工作目录全部回滚