clone
# 默认下载 master 分支
git clone robin.hu@http://www.kernel.org/pub/scm/git/git.git
# -b name 指定远程分支名称
git clone -b master2 robin.hu@http://www.kernel.org/pub/scm/git/git.git
branch
git branch
# 本地分支与源分支的关系
git branch -vv
# 创建本地分支
git checkout -b local_name orign_name
# 删除本地分支,大写的 -D 是强制删除
git branch -d local_name
# 本地分支重命名
git branch -m old_name new_name
stash
# 暂存
git stash
# 查看/恢复/删除
git stash show/pop/drop
push
git push
merge
将其他分支合并入当前分支。
比如:将 abc 分支合并入 master 分支,需要如下操作
git checkout master
git merge abc
reset
reflog
若提交记录丢失,git reflog 可以查看到丢失的提交记录。
rebase
merge 可以合并分支,rebase 也可以做到。
# 举例:将远程分支合并到当前分支
# 1 同步远程版本库所有分支的头到 FETCH_HEAD
git fetch orign
# 2 合并,如果有冲突就解决
git rebase 远程分支
# 3 确认代码没问题就强制推送
git push -f
log
git log
# 查看某个分支的提交记录
git log 分支名称
# 精简显示
git log --oneline
# 最近几条
git log -3
# 按提交人搜索
git log --author=username
# 按关键字搜索
git log --grep keywords
# 按文件名搜索
git log -p -- a/b/c/file.txt
有时使用 gitk 查询更加方便。
cherry pick
是将一个分支的提交,移植到另一个分支,后面直接跟 commit_id 即可。