一、初始化版本库
在当前目录初始化一个Git版本库git init指定一个目录并将其初始化为Git版本库git init project-path下载一个项目和它的整个代码历史git clone url地址
二、添加或者删除文件
添加指定文件到暂存区git add 文件1 文件2 ...添加指定目录到暂存区,包括子目录git add 目录添加当前目录的所有文件到暂存区git add .添加每个变化前,都会要求确认git add -p删除工作区文件,并且将这次删除放入暂存区git rm 文件1 文件2 ...停止追踪指定文件,但该文件会保留在工作区git rm --cached 文件改名文件,并且将这个改名放入暂存区git mv a.txt b.txt
三、设置忽略文件
设置每个人都想要忽略的文件在根目录新建一个 .gitignore 文件,并将该文件提交到版本库,内容如下所示:.ideabuild*.class设置只有自己想要忽略的文件修改 .git/info/exclude 文件
四、导出版本库
git archive --format=zip head > project.zip
五、代码提交
提交暂存区到仓库区git commit -m "变更说明"提交暂存区的指定文件到仓库区git commit 文件1 文件2 ... -m "变更说明"提交工作区自上次commit之后的变化,直接到仓库区git commit -a提交时显示所有diff信息git commit -v改写上一次commit的提交信息git commit --amend -m "变更说明"
六、分支管理
列出所有本地分支git branch列出所有远程分支git branch -r列出所有本地分支和远程分支git branch -a新建一个分支,但依然停留在当前分支git branch 分支名新建一个分支,并切换到该分支git checkout -b 分支名新建一个分支,与指定的远程分支建立追踪关系git branch --track 本地分支 远程分支切换到指定分支,并更新工作区git checkout 分支名切换到上一个分支git checkout -合并指定分支到当前分支git merge [branch]选择一个commit,合并进当前分支git cherry-pick 提交点ID删除分支git branch -d 分支名删除远程分支git push origin --delete 分支名git branch -dr 分支名
七、状态和日志
显示当前分支的最近几次提交git reflog显示有变更的文件git status显示当前分支的版本历史git log显示指定文件相关的每一次diffgit log -p 文件名显示commit历史git log --stat根据关键词搜索提交历史git log -S "关键词"显示过去5次提交git log -5 --pretty --oneline显示指定文件的提交信息git blame 文件名显示暂存区和工作区的差异git diff显示所有提交过的用户,按提交次数排序git shortlog -sn显示暂存区和上一个commit的差异git diff --cached 文件名显示工作区与当前分支最新commit之间的差异git diff HEAD
八、远程同步
下载远程仓库的所有变动git fetch origin显示所有远程仓库git remote -v显示某个远程仓库的信息git remote show origin取回远程仓库的变化,并与本地分支合并git pull origin 分支名上传本地指定分支到远程仓库git push origin 分支名强行推送当前分支到远程仓库git push origin --force推送所有分支到远程仓库git push origin --all
九、标签管理
列出所有taggit tag新建一个tag在当前commitgit tag tag名新建一个分支,指向某个taggit checkout -b 分支名 tag名删除远程taggit push origin :refs/tags/tag名新建一个tag在指定commitgit tag tag名 提交点删除本地taggit tag -d tag名提交指定taggit push origin tag名查看tag信息git show tag名提交所有taggit push origin --tags
十、撤销修改
撤销多个文件git checkout head 文件1 文件2撤销所有txt文件git checkout head *.txt撤销所有文件git checkout head .