1.创建本地与远程分支
先创建远程分支,再创建本地分支,再将本地分支与远程分支关联
git fetch 获取远程分支
git checkout remote_branch 或者 git checkout -b local-branch origin/remote_branch 将远程分支映射到本地命名为local-branchname的分支
先创建本地分支,再将本地分支推送的远程,创建远程分支
git checkout -b local-branch
git push origin local-branch 将本地分支推送至对应远程分支,若对应远程分支不存在,会被新建
2.撤销修改
撤销工作区的修改
git checkout -- <file> 撤销指定文件
git checkout . 撤销指定目录的所有文件
暂存区的修改撤回工作区
git reset HEAD file
版本库后退
git revert HEAD 撤销当前版本
git revert HEAD^ 撤销上个版本
版本回退
git reset --hard commit_id 回退到指定版本,工作目录中修改被丢弃,执行push之前回退
git revert commmit_id 新提交回退到指定版本,执行push之后回退
git reflog 查看命令历史
git log 查看commit历史
3.查看远程主机信息
git remote -v 查看远程主机和网址
git remote add <主机名> <网址> 添加远程主机
4.查看分支信息
git branch -vv 本地分支与远程分支的对应关系
git branch --set-upstream local origin/remote 跟踪远程分支
5.git add 相关
git add -A stages All
git add . stages new and modified, without deleted
git add -u stages modified and deleted, without new
git add -i 交互式暂存
6.重命名或移动文件
git mv <原文件名称> <新文件名称>
7.直接提交所有文件
git commit -a stages All and repo All
8.git tag 相关
查看标签
git tag 查看所有标签
git tag -l "xxx.xx*" 查看模式匹配的标签
git show [tagName] 查看标签的版本信息
打标签
git tag [tagName] 创建本地轻量标签
git tag -a [tagName] -m [comment] 创建本地附注标签
git tag -a [tagName] [commit_id] 创建指定版本的标签
git push origin [tagName] 创建远程标签
git push origin --tags 推送本地所有标签
切换到标签
git checkout [tagName]
删除标签
git tag -d [tagName] 删除本地标签
git push origin :refs/tags/[tagName] 删除远程标签
9.本地分支与远程分支不同名
git push origin local-branch:remote-branch
10.git config
git config --global user.name [username]
git diff 显示合并冲突文件,比较工作区与暂存区的差异
git diff --base <filename> 查看某个合并冲突文件
git diff <branchA> <branchB> 对比分支差异(patch)
git diff [branchA]…[branchB] 对比分支差异
git diff --cached 暂存区和上次提交的差异
git diff HEAD 工作区和上次提交的差异
git diff [tag] 自从某个版本之后都改动了什么
12.git 删除和重命名文件
# 删除工作区文件,并且将这次删除放入暂存区
$ git rm [file1] [file2] ...
# 停止追踪指定文件,但该文件会保留在工作区
$ git rm --cached [file]
# 改名文件,并且将这个改名放入暂存区
$ git mv [file-original] [file-renamed]
13. 查看单个文件历史
# 显示某个文件的版本历史,包括文件改名
$ git log --follow [file]
$ git whatchanged [file]
# 显示指定文件相关的每一次diff
$ git log -p [file]
14.查看所有用户修改历史
# 显示所有提交过的用户,按提交次数排序
$ git shortlog -sn
# 显示指定文件是什么人在什么时间修改过
$ git blame [file]
15.查看某个版本修改的文件
# 列出修改过的文件名
$ git show commitId --name-only
# 列出修改过的文件名和状态
$ git show commitId --name-status