git有三个区域,工作区,暂存区和版本库。修改的时候是在工作区,工作区的文件添加到暂存区,暂存区的文件再提交到版本库中
create 创建项目
git clone <url>:从远程克隆一个项目下来
git init:在本地新建一个项目
local changes 修改
git status:查看修改过的文件
git diff:查看修改的内容
git add .:提交所有修改的文件到暂存区
git add <file>:提交指定的文件到暂存区
git commit -a:提交工作区上次commit之后的变化,直接到版本库
git commit:提交暂存区所有文件到版本库
git commit --amend:使用新的commit来替代上一次的提交
commit history 提交日志
git log:查看提交历史
git log -p <file>:查看指定文件的提交历史
git blame <file>:以列表方式查看指定文件的提交历史
branches & tags 分支和标签
git branch -av:查看所有分支状态(需要使用qw退出)
git branch -a:查看分支列表
git checkout -b <branchName> origin/<branchName>:将远程分支origin/<branchName>映射同时切换到本地名为<branchName>的分支上
git checkout <branch>:切换到指定分支
git branch <new-branch>:创建新分支
git checkout --track <remote/branch>:基于远程分支创建一个新的分支
git branch -d <branch>:删除一个本地分支
git tag <tag-name>:为当前的提交创建一个标签
git tag -d <tag-name>:删除一个标签
update & publish 上传和发布
git remote -v:列出当前所有的远程仓库
git remote show <remote>:显示远程仓库的分支的信息
git remote add <shortname> <url>:在<url>上添加一个名为<shortname>的远程仓库
git fetch <remote>:下载远程分支所有的更改,但不要整合到HEAD中
git pull <remote> <branch>:下载更改并合并/整合到HEAD中
git push <remote> <branch>:上传更改到远程分支中
git branch -dr <remote/branch>:从远程分支中删除分支
git push --tags:上传标签
merge & rebase 合并和衍合
合并:全部合一起有冲突再解决
衍合:一点一点合并,有一个冲突解决一个冲突
git merge <branch>:合并分支到当前分支
git rebase <branch>:衍合分支到当前分支
git rebase --abort:退出这次衍合
git rebase --continue:继续衍合,下一个冲突
git mergetool:使用你配置的工具来解决冲突
undo 撤销
git reset --hard HEAD:撤销工作目录中所有未提交文件的修改内容
git checkout HEAD <file>:撤销指定的未提交文件的修改内容
git revert <commit>:撤销指定的提交
git reset --hard <commit>:重置提交为上一次提交,然后取消所有变化
git reset <commit>:重置提交为上一次提交,并将所有更改保留为未更改
git reset --keep <commit>:重置提交为上一次提交,并保留未提交的本地更改