基本的快照
git add . 递归添加文件到缓存
git add * 不递归添加文件到缓存
git status -s
-s
参数表示以获得简短的结果输出git diff --cached 查看已缓存的改动
git diff HEAD 查看已缓存的与未缓存的所有改动
git diff --stat 显示摘要而非整个 diff
git diff [version](或者你给该发布打的任何标签) 查看自发布或者某个旧历史点之后都有什么改变了
git diff [version] --stat --stat
参数显示每个提交引入的改动的差值统计
git merge-base [branchA] [branchB] 计算两次提交的合并基础
git diff branchA...branchB 查看 branchB 与 branchA 的相对差值
git commit -m ‘注释’
-m
选项以在命令行中提供提交注释,如果漏掉了 -m
选项,Git 会尝试为你打开一个编辑器以填写提交信息git commit -a 自动将在提交前将已记录、修改的文件放入缓存区
git show commit_id 查看commit的修改
git config --global user.name 'Your Name' 设置用户名
git config --global user.email you@somedomain.com 设置邮箱
git rm --cached [file] 仅删除缓冲区的文件
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。即返回git add之前
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。即git add 了然后git stash再返回git add 状态
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
分支与合并
git branch -r 查看远端分支
git branch (branchname) 创建新分支
git branch -d (branchname) 删除分支
git checkout -b (branchname) 创建新分支,并立即切换到该分支上
git checkout file 忽略文件的修改
git log --oneline
--oneline
选项来查看历史记录的紧凑简洁的版本git log --graph
--graph
选项,查看历史中什么时候出现了分支、合并git log --decorate
--decorate选项,查看标签git log --author=作者名 只寻找某个特定作者的提交
git log
-[number] -[number]
选项,以限制结果为最近 [number] 次的提交git log --before={3.weeks.ago} --after={2010-04-18}(三周前且在四月十八日之后) --no-merges 根据日期过滤提交记录,
--no-merges
选项表示以隐藏合并提交git log --grep=提交注释中的某个特定短语 根据提交注释过滤提交记录
git log --grep="" --author="" --all-match
--all-match
选项表示想看的是某人写作的并且有某个特殊的注释内容的提交记录git log --grep="" --format="%h %an %s" --format选项表示可以看到每个提交的作者是谁
git log -S需要寻找的信息 依据所引入的差值过滤(注意在“-S”与你要找的东东之间没有“=”)
git show [SHA]
显示某个特定的提交引入的补丁git log -p 显示每个提交引入的补丁
git log --stat 显示每个提交引入的改动的差值统计
-a
选项也可以执行的,但它不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。分享与更新项目
git remote add [alias] [url] 将
[url]
以 [alias]
的别名添加为本地的远端仓库git remote rm [alias]
删除现存的某个别名git remote set-url origin git://new.url.here git 修改 remote的url
撤销
git checkout -- file #撤销工作区中一个叫file的文件的修改
git reset HEAD file #撤销暂存区中一个叫file的文件到工作区中
git reset --hard HEAD^ #回滚当前分支到上一个版本,注意末尾的^,有n个^说明回滚多上个版本,也就是回到多少次commit前
在一个分支(a)合并另一个分支(b)指定的文件或者文件夹:
先切换到a分支,然后执行git checkout b -- src/qy/model/unify/*