pre_git
# 对当前用户的所有仓库都有效
git config --global user.name 'yuyu'
git config --global user.email 'yuyu@163.com'
git config --global --list # 查看配置信息
# 只对当前仓库有效,需要在仓库中设置
git config --local user.name 'yuyu'
git config --local user.email 'yuyu@163.com'
git config --local --list # 查看配置信息
creat repository
# 新建的项目直接用git管理
git init <project name> # 创建一个新的仓库
# 把已有项目代码纳入git管理
cd 项目代码所在文件夹
git init
add a new file to repository
touch hello.c # 新建文件hello.c
git add hello.c # 把hello.c从工作目录添加到暂存区
git commit -m'add hello.c' # 把hello.c从暂存区添加到版本历史
git status # 查看工作目录和暂存区中的状态
git log # 查看commit历史
git add -u # 对已经被管理的文件修改后更新
git rm <file name> # 移除某文件
rename a file
git mv <old_file> <new_file>
git commit -m'<description>'
git log
git log # 只显示当前分支的commit信息
git log <branch name> # 显示某个branch的commit信息
git log --all # 显示所有分支的commit信息
git log --n4 # 显示最近提交的4个commit信息
git log --oneline # 只显示一行description信息
git log --graph # 以图的方式显示commit信息
git help --web log # 查看help信息
gitk
gitk --all # 图形化界面的commit信息
branch
git branch -v # 查看本地有多少分支
git branch -av # 查看所有分支
git branch <branch name> # 创建分支
git checkout -b <new branch name> <commit number> # 基于一个commit号,创建一个新的分支,并切换到新的分支
git checkout -b <new branch name> # 基于当前分支,创建一个新的分支
git checkout <branch name> # 切换分支
git commit -am'description' # 工作区内容直接提交到版本历史
.git/object
# object -> commit tree blob
git cat-file -t edff32f92f0e7e0a1 # 查看类型
git cat-file -p edff32f92f0e7e0a1 # 查看内容
detached HEAD
git checkout 0ebaeab34edd # 切换到某个commit,此时无分支
... ...
git branch git_0ebaea 0ebaea # 将commit信息添加到新创建的branch git_0ebaea